我在覆盖、重载等方面很弱,所以我无法处理这个。我的问题是这样的
我有一个 frmDialog。它仅用于显示流程消息、错误消息等。它从日志中获取其文本,因此我不需要将变量传递给它。在每个进程(在其他表单上)之后,我创建这个表单并调用 ofrmDialog.ShowDialog()。我的问题是,即使文本为空,此对话框也会打开并且什么也不显示。所以我想覆盖这个 ShowDialog。 ShowDialog 返回 DialogResult,所以我真的不知道如何做到这一点。
public override DialogResult ShowDialog(){
if(this.Text != string.Empty){
return base.ShowDialog();
}
else{
//don't do anything
}
}
有其他东西时我返回什么?我真的无法理解这一点。
最佳答案
我个人建议将 ShowDialog 放在 if 语句中,以便仅在文本不为空时才触发它。
例如
if(text is not empty)
{
//Show dialog
}
这样您就可以避免当前遇到的问题。如果您必须返回某些内容,您可以将 DialogResult 设置为等于它需要的值 - 例如,OK 或 Cancel。
但是,根据您的评论,我建议您将其放在代码的 else 语句中:
else
{
return base.ShowDialog = "<OK>";
}
关于C# 试图覆盖 ShowDialog(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11932739/