【问题标题】:Can't save textBox input to variable无法将文本框输入保存到变量
【发布时间】:2019-01-23 11:32:22
【问题描述】:

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

我尝试制作一个在主窗体中执行相同操作的文本框,并且效果很好。但是现在我以单独的形式拥有它,我无法调用该变量和/或它没有正确保存

outputWindow.Text += settings.desiredHypixelLevel; ^ 主窗体中的行应将desiredLevel 的当前文本打印到名为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。

【问题讨论】:

  • 你是如何引用第二种形式的?
  • @LarsTech 已编辑
  • 没有足够的代码。 new Settings(); 很可能不是您在屏幕上看到的表单的引用。
  • Settings 是我要引用的类名,这样应该是对的吗?属性中的名称也是设置。
  • 就像我说的,你没有展示足够的代码让我们看到你是如何将这两个东西联系起来的。 “新”是这里的最佳词。这是一个“新”参考。

标签: c# winforms


【解决方案1】:

在您的第一种形式中:

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

在您的第二种形式中:

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

【讨论】:

    猜你喜欢
    • 2017-04-21
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多