2015-11-08 28 views
0

我有一個可怕的時間試圖弄清楚如何列出一個按鈕與列表視圖上的值與每個值。如何將按鈕添加到WinForms的ListView中的列或子項目?

What I currently have

我需要的按鈕全部更換爲添加/編輯字符串值。最初的任務是用於列表框,但我認爲唯一的方法是通過列表視圖項目中的子項目來實現。謝謝。

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

爲什麼不datagridview?那麼只需將所需的列聲明爲按鈕列 – Nissim

+0

不幸的是,您可能需要挖掘OwnerDraw來完成此操作。見[這個答案](http://stackoverflow.com/a/4545340/90476)中的'ListViewExtender'類。 –

+0

'我有一段可怕的時間...' - 我建議你看一下WPF作爲winforms的替代品,這樣你就可以做任何你需要的事情,而不會浪費大量時間來對抗古代框架的不適用性。 –

回答

0

ListView控制是其它控件的可怕主機。它根本沒有和他們一起玩。具體而言,它不能正確處理焦點,並且最特別的是不提供用於子控件的可滾動面板。最後一個問題是真正的殺手。

的選項有:

  1. 至於建議,使用DataGridView。使用ObjectListView。這是一個圍繞標準.NET ListView的開源代碼包裝器,它給了它超強大的力量!像displaying buttons

enter image description here

即使在這裏,按鈕不託管 - 控件本身做了很多工作,使使一些外觀和行爲像一個按鈕。

相關問題