在C#中,DialogResult问题通常可以通过以下几种方式解决:
例如:
MyDialog dlg = new MyDialog();
DialogResult result = dlg.ShowDialog();
if (result == DialogResult.OK)
{
// 用户点击了对话框的“确定”按钮
}
例如:
MyDialog dlg = new MyDialog();
dlg.Show();
// 在需要的时候检查对话框的DialogResult属性
if (dlg.DialogResult == DialogResult.OK)
{
// 用户点击了对话框的“确定”按钮
}
例如:
public class MyDialog : Form
{
public event EventHandler<DialogResultEventArgs> DialogResultChanged;
protected virtual void OnDialogResultChanged(DialogResult result)
{
DialogResultChanged?.Invoke(this, new DialogResultEventArgs(result));
}
private void btnOK_Click(object sender, EventArgs e)
{
OnDialogResultChanged(DialogResult.OK);
}
private void btnCancel_Click(object sender, EventArgs e)
{
OnDialogResultChanged(DialogResult.Cancel);
}
}
public class DialogResultEventArgs : EventArgs
{
public DialogResult Result { get; }
public DialogResultEventArgs(DialogResult result)
{
Result = result;
}
}
// 在使用对话框时订阅事件
MyDialog dlg = new MyDialog();
dlg.DialogResultChanged += (sender, e) =>
{
if (e.Result == DialogResult.OK)
{
// 用户点击了对话框的“确定”按钮
}
};
dlg.Show();
以上是一些常见的解决方案,具体的实现方式可以根据具体的需求和场景进行调整。