[英]C#: Why doesn't ShowDialog().ToString() return expected String?
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();
}
...
為什么不鍵盤.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();
}
}
因為您沒有調用KeyPad.ToString(),所以您調用DialogResult.ToString()。 ShowDialog()返回一個DialogResult。
您調用ShowDialog()
實際上顯示對話框
我想你想做的是
keypad.ShowDialog();
String total = keypad.ToString();
ShowDialog返回一個DialogResult,而不是對表單的引用。
嘗試改為
String total;
if (keypad.ShowDialog() == DialogResult.OK)
{
total = keypad.ToString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.