c# ShowDialog后判断子窗体关掉了触发方法 怎么写
时间: 2024-01-29 13:04:16 浏览: 24
可以通过子窗体的 DialogResult 属性来判断子窗体是否关闭了。当子窗体被关闭时,设置该属性的值,然后在父窗体中通过 ShowDialog 方法显示子窗体,并在方法返回后判断该属性的值即可。示例代码如下:
在子窗体中,当窗体被关闭时设置 DialogResult 属性:
```
private void btnClose_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
```
在父窗体中,显示子窗体并判断子窗体是否关闭:
```
private void btnOpen_Click(object sender, EventArgs e)
{
ChildForm childForm = new ChildForm();
if (childForm.ShowDialog() == DialogResult.OK)
{
// 子窗体被关闭后执行的代码
// ...
}
}
```
在上面的示例代码中,当子窗体被关闭后,该窗体的 DialogResult 属性被设置为 DialogResult.OK。在父窗体中,通过判断 ShowDialog 方法的返回值来判断子窗体是否关闭,如果返回值为 DialogResult.OK,说明子窗体被关闭,可以执行相应的代码。
相关问题
父窗体怎么判断子窗体关闭
父窗体可以通过子窗体的返回值来判断子窗体是否关闭。在打开子窗体的代码中,使用ShowDialog()方法打开子窗体,该方法会阻止父窗体的执行,直到子窗体关闭。当子窗体关闭时,ShowDialog()方法会返回一个DialogResult类型的值,可以根据这个值来判断子窗体是否关闭。例如:
```
private void btnOpenChildForm_Click(object sender, EventArgs e)
{
ChildForm childForm = new ChildForm();
DialogResult result = childForm.ShowDialog();
if (result == DialogResult.OK)
{
// 子窗体关闭并且返回了OK
}
else
{
// 子窗体关闭并且返回了其他值,或者用户取消了操作
}
}
```
在子窗体的代码中,可以在关闭窗体时设置返回值,例如:
```
private void btnClose_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
```
这样父窗体就可以通过返回值来判断子窗体是否关闭了。
vb.net打开一个子窗体,然后关闭,如何判断子窗体是否关闭
在 VB.NET 中,可以使用子窗体的 DialogResult 属性来判断子窗体是否已经关闭。当子窗体被关闭时,可以设置其 DialogResult 属性值,然后在主窗体中判断该属性值是否被设置,来确定子窗体是否已经关闭。具体操作步骤如下:
1. 在子窗体中,当需要关闭窗体时,设置 DialogResult 属性值,例如:
```
Me.DialogResult = DialogResult.OK
```
2. 在主窗体中,打开子窗体,并使用 ShowDialog 方法来显示窗体并等待其关闭,例如:
```
Dim childForm As New ChildForm()
Dim result As DialogResult = childForm.ShowDialog()
```
3. 在主窗体中,判断子窗体的 DialogResult 属性值,如果为 OK,则表示子窗体已经关闭,否则表示子窗体还未关闭,例如:
```
If result = DialogResult.OK Then
' 子窗体已经关闭
Else
' 子窗体还未关闭
End If
```
注意,使用 ShowDialog 方法打开子窗体时,主窗体的代码会暂停执行,直到子窗体关闭才会继续执行。因此,可以在 ShowDialog 方法的后面直接判断子窗体的 DialogResult 属性值,来确定子窗体是否已经关闭。