我有一些代码可以通过点击按钮创建一些组件。这样的事情。
CheckBox chk = new CheckBox();
chk.Top = 50;
chk.Left = 50;
chk.Text = "Check Box Test";
chk.Name = "chkTest"
this.Controls.Add(chk);
那我该如何使用这个组件呢?例如,我试过这个,但得到了错误,说该组件不存在。我只是想得到他们的价值观。
if(chkTest.Checked)
{
//Do this
}
请帮忙。
先谢谢。
答案 0 :(得分:3)
在类中创建一个名为chkTest的成员变量,稍后可以使用,或者在需要时从Controls集合中动态检索它,如下所示:
CheckBox chkTest = (CheckBox)Controls["chkTest"];
if(chkTest.Checked) {
// ...
}
答案 1 :(得分:1)
如果您在选中或取消选中时只关心控件,请使用事件。
chk.Checked += new RoutedEventHandler(CheckBox_Checked);
chk.Unchecked += new RoutedEventHandler(CheckBox_Checked);
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
CheckBox chkBox = sender as CheckBox;
if (chkBox.IsChecked.Value)
{
// Do this...
}
}
确保在完成事件处理程序后取消订阅。
答案 2 :(得分:0)
您正在引用chkTest但是您创建了chk。
答案 3 :(得分:0)
您可以将Checkbox声明为页面的成员变量。然后你就可以更容易地访问它了。
类MyPage { CheckBox chkTest;
//然后在页面加载 // chkTest = new CheckBox(); ...
}
答案 4 :(得分:0)
if ((Controls.Items["chkTest"] as CheckBox).Checked)
{
// Do this
}
应该有效,但看起来并不漂亮。 :)
您可以将其声明为变量,然后像使用它一样使用它:
CheckBox chkTest = Controls.Items["chkTest"] as Checkbox;
if (chkTest.Checked)
{
// Do this
}
在这个方便的页面上查看操作和访问Control的项目集合的方法: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection_members.aspx