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(); 
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top