我有一个表单,它有一个按钮来获取在另一个类中执行的方法。在表单上Visual C#从事件处理函数返回值
代码:
public delegate void CustomPreviewCreate();
public static event CustomPreviewCreate CustomPreviewCreate_Do;
private void CreatePreview()
{
if (CustomPreviewCreate_Do !=null)
{
CustomPreviewCreate_Do();
}
}
此事件然后获取另一个类处理。我想实现的是,如果方法正确执行,我可以反馈给表单某种形式的返回值。
我到目前为止所尝试的都没有得到结果。
下面是代码:
public void Initialize()
{
SubAsstViewPartControl.CustomPreviewCreate_Do += SubAsstViewPartControl_CustomPreviewCreate_Do;
// this gives me a the compiler error that the return type is wrong
}
private bool SubAsstViewPartControl_CustomPreviewCreate_Do()
{
// do stuff
return false;
}
是否有任何直接的方式从一个事件处理函数的返回值或者我需要使用一个单独的静态字段来存储事件结果?
更新:
每@乔恩的评论,这似乎是最简单的给我,我修改了代码如下:
public delegate bool CustomPreviewCreate();
public static event CustomPreviewCreate CustomPreviewCreate_Do;
private void CreatePreview()
{
if (CustomPreviewCreate_Do !=null)
{
bool returnval = CustomPreviewCreate_Do();
}
}
然后:
bool SubAsstViewPartControl_CustomPreviewCreate_Do()
{
// do stuff
return true;
}
咨询请如果这是一个可接受的方法,当我只想返回布尔值时?
那么你可以* *从事件处理程序返回一个值,但前提是委托类型被声明为返回一个值... –
这意味着,我需要改变我的委托的代码例如从'void'到'bool'? – ib11
是的。但请记住,如果a)有多个事件处理程序,则应考虑想要发生的事情; b)没有事件处理程序。 –