我正在做一个 winform,它包含一个列表框 (listbox10),上面有一些项目。当我双击一个项目时,它会显示另一个表单 (Form3),其中包含一个文本框 (textbox1),文本框的文本是我选择的项目。以下是我的编码。
Form3 msgForm3;
private void listBox10_DoubleClick(object sender, EventArgs e)
{
msgForm3 = new Form3();
textBox1.Text = listBox10.SelectedItem.ToString();
msgForm3.Show();
}
但不知道为什么,文本框总是空的。我的代码有什么问题吗?
最佳答案
您正在访问的 textBox1
不在 msgForm3
上。访问 msgForm3
使用(正如其他答案所提到的)
msgForm3.textBox1.Text = listBox10.SelectedItem.ToString();
但由于默认情况下所有表单控件都是private
,您可以将其在 Form3.Designer.cs
中的保护级别更改为 public
(或内部
):
public System.Windows.Forms.TextBox textBox1;
或者添加应该放在 textbox1
中的文本作为 Form3 构造函数中的参数:
public Form3(string text)
{
InitializeComponent();
this.textBox1.Text = text;
}
当您创建一个 Form3 实例时使用
msgForm3 = new Form3(listBox10.SelectedItem.ToString());
关于双击列表框中的项目后,C# 文本不显示在另一个窗体上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12795668/