C# form 怎么返回确定 键返回值
时间: 2024-11-04 12:10:41 浏览: 28
在 C# 的 Windows 窗体(Form)应用程序中,当你需要监听用户点击“确定”按钮(通常这是通过 `MessageBox.Show` 或自定义对话框实现的)并获取这个操作作为返回值时,你可以这样做:
1. 对于 `MessageBox`,它并不直接提供一个返回值,但是你可以通过设置其默认响应 (`MessageBoxButtons.YesNo` 或其他枚举值) 并处理点击事件来间接获得用户的输入。例如:
```csharp
private DialogResult result;
private void btnClick(object sender, EventArgs e)
{
result = MessageBox.Show("确认消息", "标题", MessageBoxButtons.OKCancel);
// 根据result的值判断用户选择
if (result == DialogResult.OK)
{
// 用户点击了“确定”
}
else if (result == DialogResult.Cancel)
{
// 用户点击了“取消”
}
}
```
2. 如果是自定义对话框,你可以创建一个实现了 `IWin32Window` 接口的窗口,并重写 `CreateParams` 方法以关联 Form,然后在对话框关闭时检查结果:
```csharp
public partial class CustomDialog : Form, IWin32Window
{
public DialogResult Result { get; private set; }
protected override CreateParams CreateParams
{
get
{
base.CreateParams wp = base.CreateParams;
wp.ExStyle |= WS_EX_WINDOWEDGE; // 添加边框效果
return wp;
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
Close();
}
private void btnOk_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
Close();
}
}
// 使用示例:
CustomDialog dialog = new CustomDialog();
dialog.ShowDialog(); // 显示对话框
if (dialog.DialogResult == DialogResult.OK)
{
// 用户点击了“确定”
}
else if (dialog.DialogResult == DialogResult.Cancel)
{
// 用户点击了“取消”
}
```
阅读全文