我有C#窗体打开子窗体,在其中我有文本框,确定和取消按钮,
当用户单击“确定”时,我会检查与文本框中输入的机器用户的连接
如果连接正常我想关闭子表单,如果没有显示是\没有询问用户是否仍想使用输入的机器名称的消息。
如果答案为是,则关闭子表单,如果不是只关闭是\否问题。
在主窗体中,我正在检查子对话框DialogResult,但似乎无法使其工作,因此。关闭传递取消结果。以下是主要表单中的代码:
DialogResult result = SetServer.ShowDialog();
if (result == DialogResult.OK)
{
// BLA
}
儿童表格代码
if (!PingMachine(testmachine))
{
DialogResult dialogResult = MessageBox.Show(“No connection", "Check",
MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
btnOK.DialogResult = DialogResult.OK;
}
else
{
btnOK.DialogResult = DialogResult.No;
}
this.Close();
}
答案 0 :(得分:8)
改为设置子表单的结果:
DialogResult dialogResult = MessageBox.Show(“No connection", "Check", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes) {
this.DialogResult = DialogResult.OK;
}
else {
this.DialogResult = DialogResult.No;
}
设置模态表单的DialogResult也会自动关闭它,因此无需调用this.Close();
答案 1 :(得分:0)
我在搜索其他内容,却迷失了这篇文章。即使已经快一岁了,如果有其他人来此帖子,我想添加一些内容。
如果在用户按下YesNo
时只想关闭No
对话框,那么对于No
选项的代码绝对不需要做任何事情。默认情况下,无论按下哪个按钮,窗口都会关闭YesNo
对话框,您只需要对每个按钮被按下时想要执行的操作进行强制修改即可,但是如果您根本不想执行任何操作,只需完全不写任何东西。
if (dialogResult == DialogResult.Yes)
{
this.DialogResult = DialogResult.OK;
}
// End your code here. If user press "No", then the question will automatically close with no actions being executed.