使用滚动动态创建复选框

时间:2014-06-27 18:09:37

标签: c# forms dynamic

我正在尝试使用C#在Visual Studio 2010中构建表单应用程序。

该程序将读取包含文件名列表的excel文件,并将为每个文件名动态生成文本框。

以下是我的代码,仅供澄清。我想让标签成为文件的链接,这就是我没有使用checkboxes[i].Text = filename

的原因
CheckBox[] checkboxes = new CheckBox[fileCount];
Label[] labels = new Label[fileCount];
for (int i = 0; i < fileCount; i++ )
{
    //creating a checkbox
    checkboxes[i] = new CheckBox();
    checkboxes[i].Location = new Point(360, (145 + i * 30));
    checkboxes[i].Name = String.Format("checkbox{0}", i.ToString());
    this.Controls.Add(checkboxes[i]);

    //creating filename label
    labels[i] = new Label();
    labels[i].Location = new Point(20, (150 + i * 30));
    labels[i].Text = existingFiles[i];
    labels[i].Width = 330;
    this.Controls.Add(labels[i]);
}

假如fileCount等于100,它会使表格变得非常大/很长,并且无法在大多数显示器上正确显示。

有没有办法让所有动态生成的复选框和标签全部分组在一个区域中,让用户能够滚动?像滚动面板的东西?我不知道是否有类似的东西。

我考虑使用CheckedListBox,但这样做我将无法将文件名设为链接。我希望用户能够点击标签,文件将自动打开,而不是选择它。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

大多数控件都具有AutoScroll属性。将此设置为true,控件将在必要时自动添加滚动条。您可以使用Panel控件并添加所有链接/复选框(如果您不希望整个表单滚动)。