[英]C# - Writing to a multiline textbox
我正在尝试将程序的状态写给用户。 但是我这样做的方法不起作用。 statusBox是一个文本框Windows窗体。
public static void writetoStatus(string text)
{
TextBox statusBox = new TextBox();
statusBox.Text = text;
}
请帮助!
您不能使用静态方法访问实例变量。 我想不出statusBox
不会成为实例成员的方式。 尝试将您的方法设为非静态,这应该没问题。
如上一个答案中所述,您的方法需要是静态的才能访问表单上的TextBox
。
但是,还要紧迫的事实是您将状态放在新的TextBox
而不是表单中的状态。
如果您创建了一个窗体并在其上放置了一个TextBox
,则该TextBox
已具有名称,您可以从代码隐藏文件中访问它。 默认情况下,我认为它将是Textbox1
或其他一些数字。 当然,您可以在设计器文件或Visual Studio的表单编辑器GUI中更改此名称。
因此,假设您将现有TextBox
的名称更改为statusBox
。 现在您的方法只需要这样:
void WriteToStatus(string status)
{
statusBox.Text = status;
}
好的,我看到您正在静态方法中创建文本框的新实例。 该文本框实例无处可寻,一旦执行了静态方法,它就会被销毁。
您可以拥有:
public static void writetoStatus(TextBox tb, string text)
{
tb.Text = text;
}
// and then later use it like:
writetoStatus(statusBox, text);
要么:
public static void writetoStatus(Form frm, string text)
{
TextBox tb = new TextBox();
tb.Text = text;
frm.Controls.Add(tb);
}
// and then later use it like:
writetoStatus(myForm, text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.