自定义输入框不记录响应
Custom InputBox Not Recording Response
我使用 frmInputBox.ShowDialog
创建了自定义 InputBox
,并使用了 2 个标题为 "OK" 和“取消”的按钮,并将它们设置为 AcceptButton
和 CancelButton
。这很简单,所以我可以让 InputBox
匹配我的主要 Form
的格式。但是当我在 frmInputBox
表单上的 TextBox
中输入一个值时没有消失,我的代码挂断了 InputBox
仍然打开。
我使用自定义 MessageBox
测试了我的代码,并且使用所有相同的选项它工作得很好。 InputBox
的问题一定与 TextBox
没有被正确记录有关。但是我在 TextBox
控件中没有看到任何选项可以将其设置为 Dialog
选项。
这是我的 MessageBox
:
的示例代码
frmMessageBox.lblMessageText.Text = "Would You Like To Clear The Event Log?"
frmMessageBox.ShowDialog()
If frmMessageBox.DialogResult = DialogResult.OK Then
txtEventLog.Clear()
Else
Exit Sub
End If
这是我的示例代码 InputBox
:
frmInputBox.lblDialogText.Text = "Enter Number of times this program should be executed:"
frmInputBox.ShowDialog()
If frmInputBox.DialogResult = DialogResult.OK Then
ProgramCounter = frmInputBox.txtDialogInput.Text
Else
Exit Sub
End If
我是否缺少一些我需要对 InputBox
做的事情,以便让它按照我期望的方式运行?
对于messagebox,我之前有答案,对于inputbox,和messagebox一样你需要一个module1:
Module Module1
Public theResult As String
Public Function myInputBox(ByVal promptText As String) As String
InputBoxForm.lblPrompt.Text = promptText
InputBoxForm.ShowDialog()
myInputBox = theResult
End Function
end Module
您需要输入框表单:
Public Class InputBoxForm
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
theResult = txtInputResponse.Text
Me.Close()
Me.Dispose()
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
theResult = ""
Me.Close()
Me.Dispose()
End Sub
End Class
然后你可以这样调用你的输入框:
Dim theRslt as String = myInputBox("Enter Number of times this program should be executed:")
MsgBox(theRslt)
我使用 frmInputBox.ShowDialog
创建了自定义 InputBox
,并使用了 2 个标题为 "OK" 和“取消”的按钮,并将它们设置为 AcceptButton
和 CancelButton
。这很简单,所以我可以让 InputBox
匹配我的主要 Form
的格式。但是当我在 frmInputBox
表单上的 TextBox
中输入一个值时没有消失,我的代码挂断了 InputBox
仍然打开。
我使用自定义 MessageBox
测试了我的代码,并且使用所有相同的选项它工作得很好。 InputBox
的问题一定与 TextBox
没有被正确记录有关。但是我在 TextBox
控件中没有看到任何选项可以将其设置为 Dialog
选项。
这是我的 MessageBox
:
frmMessageBox.lblMessageText.Text = "Would You Like To Clear The Event Log?"
frmMessageBox.ShowDialog()
If frmMessageBox.DialogResult = DialogResult.OK Then
txtEventLog.Clear()
Else
Exit Sub
End If
这是我的示例代码 InputBox
:
frmInputBox.lblDialogText.Text = "Enter Number of times this program should be executed:"
frmInputBox.ShowDialog()
If frmInputBox.DialogResult = DialogResult.OK Then
ProgramCounter = frmInputBox.txtDialogInput.Text
Else
Exit Sub
End If
我是否缺少一些我需要对 InputBox
做的事情,以便让它按照我期望的方式运行?
对于messagebox,我之前有答案,对于inputbox,和messagebox一样你需要一个module1:
Module Module1
Public theResult As String
Public Function myInputBox(ByVal promptText As String) As String
InputBoxForm.lblPrompt.Text = promptText
InputBoxForm.ShowDialog()
myInputBox = theResult
End Function
end Module
您需要输入框表单:
Public Class InputBoxForm
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
theResult = txtInputResponse.Text
Me.Close()
Me.Dispose()
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
theResult = ""
Me.Close()
Me.Dispose()
End Sub
End Class
然后你可以这样调用你的输入框:
Dim theRslt as String = myInputBox("Enter Number of times this program should be executed:")
MsgBox(theRslt)