如何在WinForms的ListView中向列或子项添加按钮?

时间:2015-11-08 16:10:23

标签: c# winforms listview frontend

我正在努力想弄清楚如何在列表视图中列出一个带有值的按钮,以便与每个值一起使用。

What I currently have

我需要用Buttons替换所有添加/编辑字符串值。最初的任务是列表框,但我认为唯一的方法是通过listview项目的子项目。感谢。

 public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.DefinedClassesLb.Columns.Add("Samples", 90);
        this.DefinedClassesLb.Columns.Add("AddEdit", 60);
        this.DefinedClassesLb.Columns.Add("Delete", 45);

        ListViewItem item = new ListViewItem("1");
        item.SubItems.Add("add/edit");
        item.SubItems.Add("x");
        this.DefinedClassesLb.Items.Add(item);

        ListViewItem item2 = new ListViewItem("2");
        item2.SubItems.Add("add/edit");
        item2.SubItems.Add("x");
        this.DefinedClassesLb.Items.Add(item2);

        ListViewItem item3 = new ListViewItem("3");
        item3.SubItems.Add("add/edit");
        item3.SubItems.Add("x");
        this.DefinedClassesLb.Items.Add(item3);

        ListViewItem item4 = new ListViewItem("4");
        item4.SubItems.Add("add/edit");
        item4.SubItems.Add("x");
        this.DefinedClassesLb.Items.Add(item4);

        ListViewItem item5 = new ListViewItem("5");
        item5.SubItems.Add("add/edit");
        item5.SubItems.Add("x");
        this.DefinedClassesLb.Items.Add(item5);

        ListViewItem item6 = new ListViewItem("6");
        item6.SubItems.Add("add/edit");
        item6.SubItems.Add("x");
        this.DefinedClassesLb.Items.Add(item6);

        ListViewItem item7 = new ListViewItem("7");
        item7.SubItems.Add("add/edit");
        item7.SubItems.Add("x");
        this.DefinedClassesLb.Items.Add(item7);

        this.DefinedClassesLb.View = View.Details;
        this.DefinedClassesLb.HeaderStyle = ColumnHeaderStyle.None;

    }
}

1 个答案:

答案 0 :(得分:0)

ListView控件是其他控件的可怕主机。它根本不适合他们。具体而言,它不能正确处理焦点,并且最特别地不提供用于子控件的可滚动面板。最后一个问题是真正的杀手。

您的选择是:

  1. 根据建议,使用DataGridView

  2. 使用ObjectListView。这是一个围绕标准.NET ListView的开源包装器,它赋予它超强的功能!像displaying buttons

  3. enter image description here

    即使在这里,按钮也没有被托管 - 控件本身做了很多工作,使一些东西看起来像一个按钮。