【发布时间】:2010-01-10 08:20:16
【问题描述】:
我有一个简单的用户控件,里面有一个文本框和标签。当我在其他表单中使用用户控件时,我创建了公共属性来访问文本框中的文本。
我的问题是当我在表单中调用它时该属性返回空值。我错过了什么吗?
我的财产如下::
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public string rtnTxtMake
{
get
{
return txtMake.Text;
}
set
{
txtMake.Text = value;
}
}
}
在下一个表单按钮单击事件中,我按如下方式调用该属性
UserControl1 Usc = new UserControl1();
string Make = Usc.rtnTxtMake;
MessageBox.Show(Make)
【问题讨论】:
-
您是否曾将
txtMake.Text设置为任何值? -
我在运行应用程序时在文本框中输入值。这还不够吗?
-
手动当我将 txtMake.Text 分配给某个值时。我能够获得所需的输出。但是如何将运行时键入的值分配给 txtMake.Text??????? ?
-
Ewww,匈牙利符号
-
在运行时创建 UserControl 以响应 Button Click 并没有错!其他 cmets/answers 已经提醒您:您需要将其添加到有效的“容器”(表单、面板等)中才能使用它,并且您将在 Button Click 事件中执行此操作:因为您创建的 UserControl Click 事件退出时将“超出范围”。在大多数情况下,您需要保留对新创建的 UserControl 的引用以便以后访问它:无论是在表单范围级别声明的特定变量,还是 List
中的条目,都取决于您的设计和意图。