簡體   English   中英

C#-寫入多行文本框

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM