【发布时间】:2016-02-09 07:46:53
【问题描述】:
我很难弄清楚如何在列表视图上列出一个带有值的按钮以与每个值一起使用。
我需要用按钮替换所有添加/编辑字符串值。最初的任务是针对一个列表框,但我认为完成此任务的唯一方法是通过列表视图项中的子项。谢谢。
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;
}
}
【问题讨论】:
-
为什么不用datagridview?然后只需将所需列声明为按钮列
-
不幸的是,您可能必须深入研究 OwnerDraw 才能完成此操作。请参阅 this answer 中的
ListViewExtender类。 -
I am having a terrible time...- 我建议你看看 WPF 作为 winforms 的替代品,这样你就可以随心所欲地做任何你需要的事情,而不会浪费大量时间来对抗古老框架的无能。跨度> -
我同意 Nissim,您是否有可能切换到 DataGridView 而不是 ListView ? DataGridView 有很多 ListView 所没有的功能。
标签: c# winforms listview frontend