从“控制”中获取数据;类型来存储其他控件的分类(CheckBox/TextBox/NumericUpDown等)

本文关键字:分类 控件 CheckBox 其他 NumericUpDown TextBox 存储 控制 获取 数据 类型 | 更新日期: 2023-09-27 18:13:54

我有一个包含几个字符串和一个通用控件的类型。我的问题是我不知道如何访问存储在控件中的数据。

基本上我的程序通过一些"自定义类型"循环,这些类型有_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控制。检查。tostring。但是我不确定如何使用控件类型,如果它是一个复选框类型。

我希望它可以被转移到与文本框使用。文本和数字上下。

从“控制”中获取数据;类型来存储其他控件的分类(CheckBox/TextBox/NumericUpDown等)

我不确定这是否是你要找的,但检查后:

control.getType() == typeof(CheckBox)

您可以将控件强制转换为复选框,如下所示:

((CheckBox)control).Checked

要检查控件是否是复选框,您可以使用is来验证它。

 if(controlVariable is CheckBox)
 {
     var checkBox = controlVariable as Checkbox;    
      // then you can use checkBox variable to access it's properties.
 }