我已经查看了各种答案,我已经用谷歌搜索了好几个小时,但似乎仍然无法让它发挥作用。 我正在尝试更新表单上的文本框。我已经简化了我正在使用的代码,希望它只是我不必要地添加的东西,但仍然无法让它工作。 我知道文本被传递到文本框并存储在框中,但它不会显示在实际框中。
在表格一(Form_DMM)中;
private void BtnTest_Click(object sender, EventArgs e)
{
ErrorHandling EH = new ErrorHandling();
EH.updatetbtest();
}
在单独的类(class);
public void updatetbtest()
{
string FailedMessagePB = "Test Message" + "\n";
Form_DMM FormDMM = new Form_DMM();
FormDMM.TextBoxAppend(FailedMessagePB);
FormDMM.TextBoxAppend2 = FailedMessagePB;
FormDMM = null;
}
返回形成一个;
public void TextBoxAppend(string WriteMessage)
{
TB_Issues.AppendText(WriteMessage + "\n");
System.Windows.Forms.Application.DoEvents();
TB_Issues.Invalidate();
TB_Issues.Update();
TB_Issues.Refresh();
MessageBox.Show(TB_Issues.Text);
}
public string TextBoxAppend2
{
get
{
return TB_Issues.Text;
}
set
{
TB_Issues.Text = TB_Issues.Text + value + "\n";
System.Windows.Forms.Application.DoEvents();
TB_Issues.Invalidate();
TB_Issues.Update();
TB_Issues.Refresh();
MessageBox.Show(TB_Issues.Text);
}
}
如您所见,我有两次单独尝试更新文本框,两次都不会在文本框中显示测试消息,但弹出的消息框会显示测试消息。它甚至会显示来自 TB_Issues.AppendText() 的双重测试消息。
有人可以帮忙告诉我哪里出错了。这让我发疯!
最佳答案
你可以这样使用
public void updatetbtest(Form_DMM FormDMM)
{
string FailedMessagePB = "Test Message" + "\n";
FormDMM.TextBoxAppend(FailedMessagePB);
FormDMM.TextBoxAppend2 = FailedMessagePB;
}
在你的 buttontest_Click 中
private void BtnTest_Click(object sender, EventArgs e)
{
ErrorHandling EH = new ErrorHandling();
EH.updatetbtest(this);
}
关于c# - 从另一个表单更新文本框。 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35798967/