winform上有多个pannel或者groupbox。pannel或者groupbox上有多个checkbox。怎样遍历checkbox。
可以实现么我只知道如果checkbox直接放在form上可以用control类来遍历。如果加上pannel或则groupbox则不知道如何处理。还有怎样在遍历的时候给字符...
可以实现么 我只知道如果checkbox直接放在form上可以用control类来遍历。如果加上pannel或则groupbox则不知道如何处理。还有怎样在遍历的时候给字符创加分隔符。最后一个不加,只有一个不加。
展开
1个回答
展开全部
public partial class Form1 : Form
{
//声明为全局变量
List<CheckBox> chks = new List<CheckBox>();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//调用示例
FindChks(this);
foreach (CheckBox c in chks)
MessageBox.Show(string.Format(
"Name={0}, Text={1}", c.Name, c.Text));
}
//递归查找
void FindChks(Control c)
{
if (c.HasChildren)
foreach (Control cc in c.Controls)
FindChks(cc);
else if (c is CheckBox)
chks.Add(c as CheckBox);
}
}
更多追问追答
追问
非常感谢你的回答,对我很有用!请问第二个问题怎么解决就是我说的字符串分隔符,动态的取出选中的checkbox的文本相加。用,隔开每个checkbox的文本值!谢谢你!先采纳你的问题希望回答下这个问题!
追答
//调用示例
FindChks(this);
//using System.Linq;
string alls = string.Join(",", chks.Select(x => x.Text));
MessageBox.Show(alls);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询