触发另一个事件中的事件
本文关键字:事件 另一个 | 更新日期: 2023-09-27 18:14:10
我需要帮助在c#中触发一个事件
我有一个onclick事件当你点击一个复选框时触发
void OnClick(object sender, RoutedEventArgs e)
{
...
}
我需要帮助在c#中触发一个事件
我有一个onclick事件当你点击一个复选框时触发
void OnClick(object sender, RoutedEventArgs e)
{
...
}
然而,我需要在另一个事件被触发后触发这个事件,所以在这个新事件中,我是否可以触发上面的事件?
private void DataGridCell_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
switch(dataGrid.Name)
{
case "Customer"
//fire OnCLick Event
break;
}
}
我已经试过了
??? += new MouseEventHandler(OnClick);
- 是的,你可以,但只有当事件在你自己的类。你甚至不能引发基类的事件。你可以在基类中放置一个方法来引发事件,然后调用它。
- 你放在那里的代码是添加另一个事件处理程序,而不是引发一个事件;你不需要这样做。
- 如果是按钮,使用btnDoSomething。PerformClickEvent (winforms)
- 如果处理程序在你的代码中,你可以调用它而不引发事件(注释者假设这是你想要做的,但实际上有很多情况下你需要更多)btnDoSomething_Click(null, null) - null通常有效,因为处理程序代码很少关心发送者或参数,如果你不引用它们,你不需要它们。 如果你能使用#4,你也可以像前面提到的那样重构。通常不需要。但通常很容易做到,无论如何,为了清晰起见,值得这样做。
- 对于从任何类型的Windows小部件映射的对象,请查看SendMessage和PostMessage API调用。不过,这远远超出了这个答案的范围。不适用于非windows支持的对象(但你的示例暗示窗口)。