我正在使用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);
}
}
然后也没有得到任何弹出窗口:(
选中此屏幕截图我将在弹出Employee names
上查找这样的输出,将使用LIST
答案 0 :(得分:4)
您已经有一个包含员工姓名的列表?然后只需这样做
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);
}
}