如何在Windows窗体应用程序中更改Form1.cs以外的类中的文本框文本

时间:2015-08-29 21:34:33

标签: c# winforms windows-forms-designer

所以我有类DigitButton按下按钮时会调用NormalDigitClick。它调用appendNumber。

public class DigitButton
{
    public static void NormalDigitClick(object sender, EventArgs e)
    {
        Button button = (Button)sender;
        Model model = new Model();
        model.appendNumber(button.Text);
    }
}

appnedNumber()附加数字,我试图在setTextboxVslue()的文本框中反映这个数字,但文本框没有显示任何内容。不确定出了什么问题。

public class Model :Form1
{
    public static string textBoxValue;

    public void appendNumber(string valueToBeAppended)
    {
        if (textBoxValue == "0")
        {
            textBoxValue = "";
        }
        textBoxValue = textBoxValue + valueToBeAppended;
        setTextboxValue(textBoxValue);
    }
    private void setTextboxValue(string textBoxValue)
    {
        textBox2.Text = textBoxValue;
    }
}

2 个答案:

答案 0 :(得分:0)

您没有访问在您的应用程序中打开的表单。您正在创建一个新的Model实例,然后您甚至不显示它。您需要获取已在应用程序中打开的Model表单的实例。替换以下两行:

Model model = new Model();
model.appendNumber(button.Text);

使用以下行:

(Application.OpenForms["Model"] as Model).appendNumber(button.Text);

答案 1 :(得分:0)

每当appendTextbox调用时。创建新实例(模型),以便值不会改变

尝试这样的事情,

    Model model = new Model();

更改

    Model model = (Model1)button.Parent;