基本上,我有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。
答案 0 :(得分:0)
您的第一种形式:
public string text { get {return textBox1.Text; } }
您的第二种形式:
public Form2(Form1 f)
{
this.textBox1.Text = f.text
}