C#弹窗关闭后返回数值
时间: 2024-10-09 12:14:06 浏览: 46
在C#中,当你需要在弹出窗体(例如 MessageBox、Form等)关闭后返回一个值时,通常的做法是通过事件处理或者回调函数来实现。由于MessageBox本身并不直接支持返回数值,我们可以借助一些技巧间接达成目的。这里以Form为例:
1. **使用公共变量作为临时通信渠道**:
创建一个全局的整数变量,并在Form的Close事件中修改它。在主程序中,你可以检查这个变量的状态。
```csharp
public int ReturnValue;
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// 形式上关闭,但实际保存结果
if (/*你需要的结果条件*/) {
ReturnValue = /*你想返回的值*/;
}
}
```
2. **使用DialogResult枚举**:
如果你的窗体是Form,你可以捕获DialogResult并根据其返回特定值。关闭窗体时设置DialogResult,然后在主程序中检查它。
```csharp
private void button1_Click(object sender, EventArgs e)
{
DialogResult result = ShowYourForm(); // 显示Form并获取结果
switch (result)
{
case DialogResult.OK:
// 处理OK情况...
break;
case DialogResult.Cancel:
// 处理Cancel情况...
break;
}
}
private DialogResult ShowYourForm()
{
YourForm form = new YourForm();
form.ShowDialog(); // 显示form并等待用户关闭
return form.DialogResult; // 返回用户的决策
}
```
阅读全文