我有一个用户控件,其中包含一个名为label1
的标签,并且使用以下代码将用户控件插入面板中:-
var myControl = new WindowsFormsApp4.library();
panel1.Controls.Add(myControl);
因此,用户控件内的Label将被注册到面板中。
如何在标签尚未生成到面板中的情况下编写获得label1.Text
值的代码?
编辑:我尝试使用此代码:-
var myControl = new WindowsFormsApp4.library();
string s = myControl.label1.Text
但是它不起作用,因为它会在运行时更改插入面板值的用户控件时创建一个新的用户控件。
答案 0 :(得分:2)
将控件存储在字段而不是局部变量中
public partial class Form1 : Form
{
MyControl _myControl; // Use the real type name for your control here.
public Form1()
{
InitializeComponent();
}
...
}
然后用
创建它_myControl = new WindowsFormsApp4.library();
panel1.Controls.Add(_myControl);
并使用
进行访问string s = _myControl == null ? "" : _myControl.label1.Text;