[英]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.