jac*_*nad 2 c# overriding tostring showdialog
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();
}
...
Run Code Online (Sandbox Code Playgroud)
为什么不键盘.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();
...
Run Code Online (Sandbox Code Playgroud)
因为该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();
}
}
Run Code Online (Sandbox Code Playgroud)