use*_*206 3 .net c# event-handling winforms
如果用户单击窗体中的关闭按钮,我想知道是否有任何事件处理程序.我最初的计划是当用户点击关闭按钮时,它会向调用者或调用该表单的人返回一个布尔值.例如
public void newWindow(){
NewForm nw = new NewForm();
nw.ShowDialog();
if(nw.isClosed){
do something
}
}
Run Code Online (Sandbox Code Playgroud)
那可能吗?
如果您使用.ShowDialog(),则可以通过DialogResult属性获取结果.
public void newWindow()
{
Form1 nw = new Form1();
DialogResult result = nw.ShowDialog();
//do something after the dialog closed...
}
Run Code Online (Sandbox Code Playgroud)
然后在Form1上的单击事件处理程序中:
private void buttonOk_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
private void buttonCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
Run Code Online (Sandbox Code Playgroud)
如果您不想将新表单作为对话框打开,则可以执行以下操作:
public void newWindow()
{
Form2 nw = new Form2();
nw.FormClosed += nw_FormClosed;
nw.Show();
}
void nw_FormClosed(object sender, FormClosedEventArgs e)
{
var form = sender as Form2;
form.FormClosed -= nw_FormClosed; //unhook the event handler
//you can still retrieve the DialogResult if you want it...
DialogResult result = form.DialogResult;
//do something
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22264 次 |
| 最近记录: |