gpt4 book ai didi

.net - 取消按钮需要第二次按下

转载 作者:可可西里 更新时间:2023-11-01 11:32:40 24 4
gpt4 key购买 nike

我有一个带有取消按钮的 DialogBox,调用如下:

 Dim dlgSizSelection As New dlgTyreSizeSelection(objCarWebVehicle.Tyres, objCarWebVehicle)

If (dlgSizSelection.ShowDialog) = Windows.Forms.DialogResult.OK Then
selectedTyre = CType(dlgSizSelection.lstTyreOptions.SelectedItem, CarWebVehicleCOM.TyreData)
dlgSizSelection.Close()
ElseIf (dlgSizSelection.ShowDialog) = Windows.Forms.DialogResult.Cancel Then
dlgSizSelection.Close()
Exit Sub
Else
MsgBox("No tyre sizes selected.", MsgBoxStyle.Exclamation, "Tyre Search")
dlgSizSelection.Close()
Exit Sub
End If

但是,当我在窗体中设置 DialogReturn 属性时,其调用如下:

DialogResult = Windows.Forms.DialogResult.Cancel

然后按下取消按钮,它会短暂闪烁,然后对话框重新出现,就像我什么也没按一样,为了让它完全关闭,我必须再次按下它。

我错过了什么?

最佳答案

首先:不要在模态对话框返回后调用关闭。模态对话框会自动关闭。

您的代码有问题,原因如下:您多次调用 ShowDialog。如果您的代码确定未单击“确定”,它会再次显示对话框,等待用户再次单击。

If (dlgSizSelection.ShowDialog) = Windows.Forms.DialogResult.OK Then
...

ElseIf (dlgSizSelection.ShowDialog) = Windows.Forms.DialogResult.Cancel Then
...
End If

声明一个局部变量,它保存单次调用 ShowDialog 的结果,一切都会正常进行:

Dim result as Windows.Forms.DialogResult = dlgSizSelection.ShowDialog

If (result = Windows.Forms.DialogResult.OK) Then
....
ElseIf (result = Windows.Format.DialogResult.Cancel) Then
....
Else
....
End If

不要调用Close 并且不需要 Exit Sub

关于.net - 取消按钮需要第二次按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17653257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com