labelTotal 保存类 Keypad (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() 不返回 labelTotal.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();
}
}
关于C#:为什么 ShowDialog().ToString() 不返回预期的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4475139/