C# 双击列表框中的项目后,C文本不会显示在其他窗体上

C# 双击列表框中的项目后,C文本不会显示在其他窗体上,c#,C#,我正在做一个winform,它由一个列表框listbox10和一些项目组成。当我双击一个项目时,它将显示另一个表单Form3,它由一个textbox textbox 1组成,textbox的文本就是我选择的项目。下面是我的代码 Form3 msgForm3; private void listBox10_DoubleClick(object sender, EventArgs e) { msgForm3 = new Form3(); textBox1.Text = listBo

我正在做一个winform,它由一个列表框listbox10和一些项目组成。当我双击一个项目时,它将显示另一个表单Form3,它由一个textbox textbox 1组成,textbox的文本就是我选择的项目。下面是我的代码

Form3 msgForm3;
private void listBox10_DoubleClick(object sender, EventArgs e)
{

    msgForm3 = new Form3();
    textBox1.Text = listBox10.SelectedItem.ToString();
    msgForm3.Show();
}

但不知为什么,文本框总是空的。我的编码有什么问题吗?

假设textbox1是msgForm3中的一个控件,那么正确的语法应该是

msgForm3.textBox1.Text = listBox10.SelectedItem.ToString(); 
这需要使用表单设计器属性窗口将textBox1的属性修饰符从Private更改为Public。 我不推荐这种改变。最好像这样在msgForm3的构造函数中传递新值

msgForm3 = new Form3(listBox10.SelectedItem.ToString());  
msgForm3.Show();  
然后在msgForm3的构造函数中添加

public Form3(string initialValue)  
{  
    InitializeComponent();  
    this.textBox1.Text = initialValue;  
}  
或者您可以像这样向Form3类中添加公共方法

msgForm3 = new Form3(listBox10.SelectedItem.ToString());  
msgForm3.Show();  
public void InitTextstring初始值 { this.textBox1.Text=初始值; }

这样叫吧

msgForm3 = new Form3();  
msgForm3.InitText(listBox10.SelectedItem.ToString());
msgForm3.Show();  

假设textbox1是msgForm3中的一个控件,那么正确的语法应该是

msgForm3.textBox1.Text = listBox10.SelectedItem.ToString(); 
这需要使用表单设计器属性窗口将textBox1的属性修饰符从Private更改为Public。 我不推荐这种改变。最好像这样在msgForm3的构造函数中传递新值

msgForm3 = new Form3(listBox10.SelectedItem.ToString());  
msgForm3.Show();  
然后在msgForm3的构造函数中添加

public Form3(string initialValue)  
{  
    InitializeComponent();  
    this.textBox1.Text = initialValue;  
}  
或者您可以像这样向Form3类中添加公共方法

msgForm3 = new Form3(listBox10.SelectedItem.ToString());  
msgForm3.Show();  
public void InitTextstring初始值 { this.textBox1.Text=初始值; }

这样叫吧

msgForm3 = new Form3();  
msgForm3.InitText(listBox10.SelectedItem.ToString());
msgForm3.Show();  

这是访问另一个表单的成员的方式

msgForm3 = new Form3();
msgForm3.textBox1.Text = listBox10.SelectedItem.ToString();
msgForm3.Show();
编辑:

从Form3.Designer.cs文件中,只需将保护级别从private更改为public

替换

private System.Windows.Forms.TextBox textBox1;


这是访问另一个表单的成员的方式

msgForm3 = new Form3();
msgForm3.textBox1.Text = listBox10.SelectedItem.ToString();
msgForm3.Show();
编辑:

从Form3.Designer.cs文件中,只需将保护级别从private更改为public

替换

private System.Windows.Forms.TextBox textBox1;

您正在访问的文本框1不在msgForm3上。要访问msgForm3上的一个,请使用前面提到的其他答案

msgForm3.textBox1.Text = listBox10.SelectedItem.ToString(); 
但由于默认情况下所有表单控件都是私有的,因此您可以将Form3.Designer.cs中的保护级别更改为公共或内部:

或者在textbox1中添加文本作为Form3构造函数中的参数:

public Form3(string text)
{
    InitializeComponent();
    this.textBox1.Text = text;
}
当您创建Form3的实例时,请使用

msgForm3 = new Form3(listBox10.SelectedItem.ToString());
您正在访问的文本框1不在msgForm3上。要访问msgForm3上的一个,请使用前面提到的其他答案

msgForm3.textBox1.Text = listBox10.SelectedItem.ToString(); 
但由于默认情况下所有表单控件都是私有的,因此您可以将Form3.Designer.cs中的保护级别更改为公共或内部:

或者在textbox1中添加文本作为Form3构造函数中的参数:

public Form3(string text)
{
    InitializeComponent();
    this.textBox1.Text = text;
}
当您创建Form3的实例时,请使用

msgForm3 = new Form3(listBox10.SelectedItem.ToString());

您没有访问form3上的文本框。Setupstring文本dash上的任何示例?您没有访问form3上的文本框。Setupstring文本dash上的任何示例?Steve,我已经尝试过,但出现了一个错误,说明文本框由于其保护级别而无法访问。这是什么意思?史蒂夫,我试过了,但是出现了一个错误,说文本框由于其保护级别而无法访问。这是什么意思?Vishal Suthar,我试过了,但是出现了一个错误,说文本框由于其保护级别而无法访问。这是什么意思?在Form2.Designer.csVishal Suthar中,将其保护级别从私有更改为公共,我已经尝试过了,但出现了一个错误,说明文本框由于其保护级别而无法访问。这是什么意思?在Form2.Designer.cs+1中将其保护级别从私有更改为公共这也是我的首选路线,尽管我也会在表单中添加属性。另外,如果不仅仅是文本框的文本必须更改,标签也必须更改,该怎么办。如何操作?使用相同的方法:要么将所需的值作为参数传递给构造函数,要么更改要从其他窗体访问的控件的保护级别。+1这也是我的首选路由,尽管我也会向窗体添加属性。另外,如果不仅仅是文本框的文本需要更改,该怎么办,标签也必须更改。如何操作?使用相同的方法:要么将所需的值作为参数传递给构造函数,要么更改要从其他窗体访问的控件的保护级别。