c# - 如何通过在 List C# 中传递复选框名称在 Winform 上创建动态复选框?

标签 c# .net excel winforms excel-addins

我正在处理 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 enter image description here 传递的输出

最佳答案

您已经有了包含员工姓名的列表?然后简单地这样做

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/

相关文章:

c# - OpenXML:用 WordprocessingML 中的表替换 <sdt/> 元素

c# - 如何使用模型属性作为接口(interface)在 ASP.NET Web API 中发布

.net - 使用挂载点时,如何查找给定NTFS路径所在的卷?

c# - 使用 C# 以编程方式切换耳机中的立体声音频 channel (左 <> 右)

excel - Delphi Ole - 突然错误 - 接口(interface)不支持

c# - 是否存在不会为 'using' block 调用 Dispose 的情况?

c# - 如何从 .docx/.odt/.doc 文件中读取或复制文本

excel - 将数据从 Sheet1 复制到 Sheet2,当列中的值更改时插入行

.net - 在新的 ASP.NET Core 托管站点上,为什么将 ASPNETCORE_ENVIRONMENT 更改为任何自定义值会导致本地托管失败,但没有错误?

arrays - Excel宏将整列转换为一维数组