如何区分 InputBox Cancel 和 OK 按钮?
Posted
技术标签:
【中文标题】如何区分 InputBox Cancel 和 OK 按钮?【英文标题】:How to distinguish InputBox Cancel from OK button? 【发布时间】:2013-11-09 20:43:22 【问题描述】:快速提问:
我在我的 C# 代码中使用 Microsoft.VisualBasic.Interaction.InputBox
来允许用户将网站添加到列表中,但我不希望他们输入空字符串,因此我会弹出错误消息以防万一。但是,如果用户按下“取消”,也会弹出错误,这是我不希望发生的。
阅读上面的文档说按“取消”会返回一个空字符串,因此它会触发错误。有没有办法仍然定义用户是用空字符串按下“okay”还是“cancel”?
提前致谢,
-彼得
【问题讨论】:
别这么认为,输入框相当有限。如果您需要正确实施,您应该编写自己的对话框。 【参考方案1】:你不能这样做。来自MSDN
如果用户点击取消,则返回一个零长度的字符串。
Dim result As String = Microsoft.VisualBasic.InputBox("Enter some text")
If result.Length > 0 Then
Debug.WriteLine("Something entered and OK Clicked")
Else
Debug.WriteLine("Cancel Button Clicked OR Blank String Entered and OK Clicked")
End If
最简单的解决方案就是创建自己的简单输入表单并测试DialogResult
值
【讨论】:
不幸的是他们没有在这里保留original VB behaviour。 DOT.NET 包装器将输出初始化为 "" 而不是 null。如果按下 Okay,则将 TextBox 的内容分配给 this.Output(可能是一个空字符串“”),如果 Cancel 则不分配任何内容。因此,您无法区分这两种结果。有些人将默认值初始化为“”作为解决方法。【参考方案2】:string a;
a = Interaction.InputBox("message", "title");
if (a.Length > 0)
comboBox2.Items.Add(a);
// ok
else
// cancel
【讨论】:
以上是关于如何区分 InputBox Cancel 和 OK 按钮?的主要内容,如果未能解决你的问题,请参考以下文章
Fmx在android下InputBox输入框点击Cancel取消按钮后报异常
java里的confirm框有办法禁用关闭按钮或者将点cancel取消和点X关闭区分开来吗?
如何更改 Xamarin 表单中的 DatePicker Ok 和 Cancel 按钮文本?
按下 QDialog Cancel 或 OK 时如何调用函数?