无法将文本框输入保存到变量

时间:2019-01-10 19:01:34

标签: c# winforms

基本上,我有2种形式的WinForms程序。在一种表单上,我获取了要在主表单中输出的信息所需的所有用户输入。就像设置窗口一样。但是,当我有一个MaterialSkin文本框(我不知道这是否重要)并在文本框中编写内容时,我试图通过创建一个textbox_textchanged事件来获取输入,该事件将当前文本存储到变量中。但是,我无法在其他课程中访问该变量。它是公共的,但似乎该变量甚至没有正确存储。

我尝试过制作一个文本框,该文本框在主窗体中的功能完全相同,并且效果很好。但是,现在我以另一种形式使用它了,我无法调用该变量和/或该变量无法正确保存

outputWindow.Text += settings.desiredHypixelLevel; ^应该在主窗体中的行,该行将期望的当前文本打印到名为outputWindow的文本框中。 settings.desiredHypixelLevel的定义如下。

private void desiredLevel_TextChanged(object sender, EventArgs e)
        {
            var parseSucessful = Int32.TryParse(this.Text, out desiredHypixelLevel);
            if (!parseSucessful)
            {
                this.Text = "";
            }
        }

^以第二种形式从文本框中获取变量的代码

在第二个表单类的开头,我定义了一个名为desiredHypixelLevel public int desiredHypixelLevel;的公共变量。我使用Settings settings = new Settings();引用该类(Settings是第二种形式的名称)

我的表单布局中的图片:https://prntscr.com/m5ik1g(嵌入时不会显示)

预期结果是该变量是从文本框中获取的,并存储在desiredHypixelLevel变量中。但是它只是在其中存储0。

1 个答案:

答案 0 :(得分:0)

您的第一种形式:

public string text { get {return textBox1.Text; } }

您的第二种形式:

public Form2(Form1 f)   
{
    this.textBox1.Text = f.text
}