我正在处理 excel 加载项项目 c#。
想要创建带有在 List 中传递的名称的复选框列表,如何使用命名的传递来创建它?
并且还想将该复选框选中的值。
目前我有一个按钮 LoadEmployee
当我点击时所有的 EmployeeNames 直接从 Sql 表加载到 Excel 工作表中
现在我想做的是,当我点击 LoadEmployee
时,它会打开一个包含所有员工姓名的弹出窗口,每个员工姓名都有一个复选框,我选择的是只填充员工姓名而不是其他复选框.
在@Vajura 给出的答案的帮助下,我尝试了
调用弹出表单使用
new FilterDataForm().ShowDialog(mylist);
在弹出窗体 .cs 上
internal void ShowDialog(MyModel.ListEmployee> mylist)
{
GenerateFilterList(mylist);
}
private void GenerateFilterList(List<ListEmployee> mylist)
{
System.Windows.Forms.CheckBox box;
for (int i = 0; i < mylist.Count; i++)
{
box = new System.Windows.Forms.CheckBox();
box.Tag = mylist[i];
box.Text = mylisti].ToString();
box.AutoSize = true;
box.Location = new Point(10, i * 50); //vertical
//box.Location = new Point(i * 50, 10); //horizontal
this.Controls.Add(box);
}
}
butthen also not getting any popup :(
检查此屏幕截图,我正在寻找这样的弹出窗口 员工姓名
将显示使用 LIST
传递的输出
最佳答案
您已经有了包含员工姓名的列表?然后简单地这样做
private void Form1_Load(object sender, EventArgs e)
{
this.Size = new Size(200, 200);
List<string> yourList = new List<string>();
yourList.Add("A");
yourList.Add("B");
yourList.Add("C");
yourList.Add("D");
yourList.Add("E");
yourList.Add("F");
CheckBox box;
int innitialOffset = 20;
int xDistance = 80;
int yDistance = 50;
for (int i = 0; i < yourList.Count; i++)
{
box = new CheckBox();
box.Tag = yourList[i];
box.Text = yourList[i].ToString();
box.AutoSize = true;
box.Location = new Point(innitialOffset + i % 2 * xDistance, innitialOffset + i / 2 * yDistance);
this.Controls.Add(box);
}
}
关于c# - 如何通过在 List C# 中传递复选框名称在 Winform 上创建动态复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26333617/