3
(信息):我知道這已被問了好幾次,但恕我直言總是問題是,事件並沒有真正添加在調用函數,這不是這裏的情況。即使在調用函數中正確添加了事件,爲什麼我的事件始終爲空?
我有下面的類:
public class FilePanel : BasePanel
{
public event LinkClickedEventHandler FileOpen;
private PlaylistElement _element;
public FilePanel() : base()
{
AddControls(new PlaylistElement { Description = "lorem ipsom" });
}
public FilePanel(PlaylistElement element) : base(element)
{
AddControls(element);
}
private void AddControls(PlaylistElement element)
{
_element = element;
ToolTip tt = new ToolTip();
var textControl = new Label { Dock = DockStyle.Fill, Text = element.File.Title, Padding = new Padding(2, 2, 5, 2) };
var linkControl = new LinkLabel { Dock = DockStyle.Right, TextAlign= System.Drawing.ContentAlignment.MiddleRight, Width = 200, Text = "Datei öffnen", Padding = new Padding(2, 2, 5, 2) };
tt.SetToolTip(linkControl, element.File?.FileReference);
linkControl.Click += LinkControl_Click;
this.Controls.Add(textControl);
base.AddControls(element);
this.Controls.Add(linkControl);
this.Height = 50;
}
private void LinkControl_Click(object sender, EventArgs e)
{
FileOpen?.Invoke(this, new LinkClickedEventArgs(_element.File.FileReference));
}
}
此類稱爲方式如下:
private void AddScheduleFile(RadCollapsiblePanel blockPanel, PlaylistElement element)
{
var panel = new ScheduleControls.FilePanel(element);
panel.FileOpen += Panel_FileOpen;
blockPanel.Controls.Add(new ScheduleControls.FilePanel(element));
}
正如你所看到的,的FileOpen-事件被分配給調用的類。
但是,當我分成LinkControl_Click
時,FileOpen
仍爲NULL。
「正如您所看到的,FileOpen事件被分配給調用類。」 - 是的,對於你創建的面板,然後什麼都不做... –
你說得對。但Mong Zhu速度更快,Jon :) –