我有一个包含几个字符串和一般控件的类型。我的问题是我不知道如何访问存储在控件中的数据。
基本上我的程序循环遍历一些“自定义类型”,它们具有_control“Children”,然后分配给New CheckBox或其他表单控件。
private Control _control { get; set; }
public void set_control(Control control) { this._control = control; }
其他地方
x.set_control(new CheckBox
{
Dock = DockStyle.Fill,
AutoSize = false,
Text = x.name(),
Checked = Convert.ToBoolean(x.data())
});
x.control().Click += delegate { refresh_data(x); };
伪代码
private void refresh_data(embedded_setting setting)
{
if (setting.control().GetType() == typeof(CheckBox))
{
setting.set_data(setting.control());
}
}
我需要将set_data设置为control.checked.tostring。但我不确定如何使用控件类型,就好像它是一个复选框类型。
我希望它可以继续用于TextBox.Text和NumericUpDown.Value。
答案 0 :(得分:0)
要检查您的控件是否为复选框,您可以使用 来验证它。
if(controlVariable is CheckBox)
{
var checkBox = controlVariable as Checkbox;
// then you can use checkBox variable to access it's properties.
}
答案 1 :(得分:0)
我不确定这是否是您正在寻找的,但在检查后:
control.getType() == typeof(CheckBox)
您可以将控件转换为如下所示的复选框:
((CheckBox)control).Checked