C#:为什么不showdialog()。toString()返回预期字符串?
-
11-10-2019 - |
题
Labeltotal拥有类键盘(C#Winforms)的价值。 Tostring已被过度返回Labeltotal.text。
namespace Gui3
{
public partial class Keypad : Form
{
public Keypad()
{
InitializeComponent();
}
public override String ToString() {return labelTotal.Text;}
private void buttonOk_Click(object sender, EventArgs e)
{
this.Close();
}
...
为什么keypad.showdialog()。toString()返回babeltotal.text?
namespace Gui3
{
public partial class Setup : Form
{
public Setup()
{
InitializeComponent();
}
private void buttonStartDepth_Click(object sender, EventArgs e)
{
Keypad keypad = new Keypad();
////////// Not working as expected /////////
String total = keypad.ShowDialog().ToString();
...
解决方案
因为 ShowDialog()
方法返回 System.Windows.Forms.DialogResult
枚举价值,而不是表格的实例。 ToString()
将在此功能返回的枚举值上调用。
您可能会尝试以下操作(假设 keypad
将正确返回 DialogResult.OK
):
private void buttonStartDepth_Click(object sender, EventArgs e)
{
Keypad keypad = new Keypad();
if (keypad.ShowDialog() == DialogResult.OK)
{
String total = keypad.ToString();
}
}
其他提示
因为您没有调用键盘toString(),所以您正在调用dialogresult.tostring()。 Showdialog()返回拨号数。
您正在调用的方法 ShowDialog()
实际显示对话框
我认为你想做的是
keypad.ShowDialog();
String total = keypad.ToString();
Showdialog返回拨号数,而不是对表单的引用。
尝试更改为
String total;
if (keypad.ShowDialog() == DialogResult.OK)
{
total = keypad.ToString();
}
不隶属于 StackOverflow