Panel Pan_TitlePanel = new Panel()
{
Dock = DockStyle.Top,
Height = SETTINGS.TITLEPANELHEIGHT,
BackColor = SETTINGS.TITLEPANELCOLOR
};
Pan_TitlePanel.MouseDown += new MouseEventHandler(TitlePanel_MouseDown);
Pan_TitlePanel.MouseUp += new MouseEventHandler(TitlePanel_MouseUp);
Pan_TitlePanel.MouseMove += new MouseEventHandler(TitlePanel_MouseMove);
this.Controls.Add(Pan_TitlePanel);
我在表单初始化程序中使用了此代码。如您所见,变量Pan_TitlePanel的声明位于函数内,从而使其成为局部变量。
这是不好的做法,尤其是在面板具有触发的事件时。我不需要在代码的任何其他地方引用它,因此只是好奇这是不好的还是完全可以的。
答案 0 :(得分:0)
我看不到有问题,这种方式可以很好地工作。
由于它始终被表单引用,因此即使在“超出范围”之后也不会被GC。
例如,当您要从表单中删除它时,您始终可以通过发送者对象从三个事件处理程序之一访问它。
您可以通过用匿名方法替换事件处理程序来进一步缩短代码。
Pan_TitlePanel.MouseDown += (sender, args) => { /* put your logic here */};