正在创建用于隐藏不起作用的控件的自定义事件
本文关键字:控件 自定义 事件 不起作用 隐藏 创建 用于 | 更新日期: 2024-05-25 13:04:41
这是我的userControl
中的代码
public partial class UserControlHomeScreen : UserControl
{
public event EventHandler SomethingHappened;
public void DoSomething()
{
EventHandler handler = SomethingHappened;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
public void HandleEvent(object sender, EventArgs args)
{
MessageBox.Show("Wafak.");
}
public UserControlHomeScreen()
{
InitializeComponent();
}
private void btnAverageDailyBal_Click(object sender, EventArgs e)
{
this.Tag = 0;
this.Hide();
}
private void btnComputeTransferPricing_Click(object sender, EventArgs e)
{
this.Tag = 1;
this.Hide();
}
}
这是我主表单中的代码
private void HomeScreen()
{
uHomeScreen = new UserControlHomeScreen();
uHomeScreen.Dock = DockStyle.Fill;
//uHomeScreen.Disposed += new EventHandler(uHomeScreen_Disposed);
uHomeScreen.SomethingHappened += new EventHandler(uHomeScreen_SomethingHappened);
panelMain.Controls.Add(uHomeScreen);
}
void uHomeScreen_SomethingHappened(object sender, EventArgs e)
{
MessageBox.Show("throw new NotImplementedException();");
}
我想发生的是,当用户控件被隐藏时,我想在我的主窗体中触发一个事件,但不起作用,我缺少什么?请帮忙。谢谢
您对事件引发器(DoSomething
)的命名约定令人困惑,您的代码不会调用DoSomething
(或引发事件SomethingHappened
),那么它怎么会为您激发呢?在用户控制类中添加以下代码:
//override the OnVisibleChanged
protected override void OnVisibleChanged(EventArgs e){
if(!Visible) DoSomething();
}