Winforms 如果面板可见,是否使用委托触发事件?
我试图找出使用委托的理由,据我所知,委托基本上代表了事件的意义 我本应该在Windows窗体中进行的活动。我有一个开始不可见的面板,但当它变得可见时,背景中的所有内容都将被禁用(弹出窗口) 我可以这样做,任何使面板可见的东西也会导致所有东西都被禁用,就像我通常做的那样。但是我可以设置一个委托或事件,这样每当该面板可见时,它就会调用一个禁用所有内容的方法吗 我就是不知道如何与代表一起解决这个问题。怎么样:Winforms 如果面板可见,是否使用委托触发事件?,winforms,events,delegates,panel,Winforms,Events,Delegates,Panel,我试图找出使用委托的理由,据我所知,委托基本上代表了事件的意义 我本应该在Windows窗体中进行的活动。我有一个开始不可见的面板,但当它变得可见时,背景中的所有内容都将被禁用(弹出窗口) 我可以这样做,任何使面板可见的东西也会导致所有东西都被禁用,就像我通常做的那样。但是我可以设置一个委托或事件,这样每当该面板可见时,它就会调用一个禁用所有内容的方法吗 我就是不知道如何与代表一起解决这个问题。怎么样: panel.VisibleChanged += (sender, args) => {
panel.VisibleChanged += (sender, args) =>
{
if (panel.Visible) // Just become visible
{
// Disable everything else
}
};
System.Windows.Forms.Control
s(包括面板)具有可绑定到的VisibleChanged事件。所以
myPanel.VisibleChanged += OnMyPanelVisibleChanged;
或内联:
myPanel.VisibleChanged += (sender, e) => this.Enabled = myPanel.Visible;
所有
控件
都有VisibleChanged
从第一个开始,我会有一个名为OnMyPanelVisibleChanged()的方法?是的。这需要两个参数(objectsender,EventArgs e)我来试一试,看起来不错。这会被认为是一个事件吗?或者你把这种过程称为什么?@Johnny:这是在VisibleChanged事件上附加一个处理程序。