lookat 发表于 2023-8-15 03:31

vs groupBox容器内多个单选框的选择状态

本帖最后由 lookat 于 2023-8-15 03:36 编辑

我忘了为啥要写这个了,好像是因为当时不知道怎么样用方法获取选择状态就写了个这个(但.....直接点击事件就好了啊),要是有知道怎么获取groupBox容器内指定模块的属性值可以发一下。

//容器内的数量
int groupBox1Count = groupBox1.Controls.Count;

//键值对    格式限制   文本,文本
Dictionary<string, string> dic = new Dictionary<string, string>();

//for循环赋值
for (int bb = 0; bb < groupBox1Count; bb++)
{
      //添加键值对
      dic.Add(groupBox1.Controls.Text, groupBox1.Controls.ToString().Replace("System.Windows.Forms.RadioButton,", "").Split(":"));
}

//获取"麦克风"键的"值"
textBox3.Text = dic["麦克风"];

pjy612 发表于 2023-8-15 11:15

本帖最后由 pjy612 于 2023-8-15 11:31 编辑

{:301_1009:}
一般 winform 不是直接根据 控件ID获取吗?
还是说 你的 groupBox1 里面的 组件是 后台代码生成后 画上去的?
有必要可以过滤子控件然后用类型 去筛选 里面的单选框

private void button1_Click(object sender, EventArgs e)
      {
            List<RadioButton> radios = groupBox1.Controls.Cast<Control>().Where(r=>r is RadioButton).Cast<RadioButton>().ToList();
            RadioButton button = radios.FirstOrDefault(r=>r.Checked);
            if (button != null)
            {
                MessageBox.Show($@"check Radio Name is {button.Name} ,Text is {button.Text}");
            }
      }

lookat 发表于 2023-8-15 17:47

pjy612 发表于 2023-8-15 11:15
一般 winform 不是直接根据 控件ID获取吗?
还是说 你的 groupBox1 里面的 组件是 后台代 ...

谢谢,很有用{:1_893:}
页: [1]
查看完整版本: vs groupBox容器内多个单选框的选择状态