在Windows窗体

时间:2015-09-24 10:53:49

标签: c# .net winforms user-controls windows-forms-designer

我希望显示以下内容: -

enter image description here

每一行都是关于一个过程(PID,父等等信息)。用户可以检查checkbox并单击“启动”按钮以获取有关该过程的一些动态详细信息。

问题是CheckedListBox控件不允许多个列,而ListView等其他控件(允许多列)不允许嵌入checkbox之类的控件在一列中。

我想知道是否有一个控件可以让我拥有一个自定义控件列表,其中每个自定义控件都包含checkboxSome TextSome Dynamic Text

如何在Windows窗体中实现?提前谢谢。

3 个答案:

答案 0 :(得分:5)

您可以使用以下任一选项:

  • 的DataGridView
    您可以使用DataGridView来显示不同类型的多个列,包括TextBoxLabelCheckBoxComboBoxImage,{{1 },Button。您还可以通过自定义绘制或添加新的自定义列类型来自定义网格的外观。
  • 用户控件
    您可以创建一个复合控件或UserControl,其中包含您需要的任何其他控件并将其用作行模板,然后您可以通过在Link或{Panel中托管该用户控件的多个实例来显示所有行{1}}。
  • <强> TableLayoutPanel中
    您可以使用包含多个列和行的TableLayoutPanelFlowLayoutPanel的每个单元格都可以托管一个控件。

  • <强>的DataRepeater
    您可以使用DataRepeater控件创建行模板,并使用该模板显示行列表。

示例1 - DatGridView

如果您想使用数据绑定并显示特定控件,包括TableLayoutPanelTextBoxLabelCheckBoxComboBoxImageButton一行,Link很棒。它是可自定义的,您可以添加一些其他不同的列类型或自定义网格绘制,或从广泛的有用事件中受益,以进行验证等。

在下面的图片中,您可以看到DataGridView DataGridViewRowHeaderVisible设置为ColumnHeaderVisible,就像没有标题的字段列表一样:

enter image description here

示例2 - UserControl

如果您需要自定义控件来托管更复杂的控件或对组件进行更多控制或以不同列的形式显示它们,您可以创建托管组件的false,然后:

  • 如果您只需要自上而下的流量,请使用UserControl并添加您的用户控件,并将Panel控件的属性设置为Dock
  • 如果您可能需要自上而下的流量使用Top向其添加控件实例。

创建FlowLayoutPanel

enter image description here

将其实例添加到UserControlPanel

enter image description here

答案 1 :(得分:1)

您可以使用TableLayoutPanel容器。

答案 2 :(得分:0)

  

我想知道是否有控件允许我拥有   每个自定义控件包含复选框的自定义控件列表,   一些文字和一些动态文本。

一个选项可能是您将以下内容创建为单独的用户控件

enter image description here

...并且作为容器控件使用FlowLayoutPanel之类的容器,并继续将用户控件添加到FlowLayoutPanel

确保FlowLayoutPanel的方向设置为TopDown

this.FlowLayoutPanel1.FlowDirection = FlowDirection.TopDown;