如何从单独的类中修改表单的文本框?

时间:2009-12-10 00:49:52

标签: c#

我正在尝试创建一个表单,我可以在文本框中更新文本,而无需用户进行交互。现在我正在尝试在我的表单类中创建一个更新TextBox.Text字段的方法。在课外,我无法访问该功能。

现在我正在尝试

static void Main()
{
    Form status = new Window();
    Application.Run(status);
    status.UpdateTextBox("NewText");
}

我的表单类似(来自设计师)

public partial class Window : Form
{
    public Window()
    {
        InitializeComponent(); 
    }

    public void UpdateTextBox(string text)
    {
        textBox1.Text = text;
    }  
}

我也试过让Textbox成为这样的公共属性。

public string DisplayedText
{
    get
    {
        return textbox1.Text;
    }
    set
    {
        textbox1.Text = value;
    }
}

我正在尝试在运行时编辑该字段。这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以访问该功能,但如果您查看代码,则会出现问题:

static void Main() 
{
    Form status = new Window(); 
    Application.Run(status);  // Blocks here!
    status.UpdateTextBox("NewText"); 
}

当您调用Application.Run()时,在状态窗体关闭之前,它不会将控制权返回给您的程序。那时,设置状态为时已晚......

您可以在运行之前设置它,但在构建之后:

static void Main() 
{
    Form status = new Window(); 
    status.UpdateTextBox("NewText"); 
    Application.Run(status); 
}

答案 1 :(得分:0)

这是代码...... Application.Run将阻塞,在关闭表单之前,status.UpdateTextBox不会执行。

static void Main()
{
    Form status = new Window();
    Application.Run(status);
    status.UpdateTextBox("NewText");
}