2011-04-07 41 views
1

我使用XtraTreeList控件。XtraTreeList中的圖像列出現問題

有2列:第一文本和第二對圖標

問題:我不能改變默認圖標(零索引在對應圖像列表)。圖片列表中有3張圖片。

比如我需要證明這是位於2指數

代碼

TreeListColumn col = treeList1.Columns.Add(); 
      col.Caption = "Text"; 
      col.Visible = true; 

      TreeListColumn colImage = treeList1.Columns.Add(); 
      colImage.Caption = "ImageColumn"; 
      colImage.Visible = true; 


      RepositoryItemImageEdit imageEdit = new RepositoryItemImageEdit(); 
      imageEdit.Images = imageList; 

      treeList1.RepositoryItems.Add(imageEdit); 
      colImage.ColumnEdit = imageEdit; 

      treeList1.BeginUnboundLoad(); 

      TreeListNode node = treeList1.AppendNode(new object[] { "trololo", 2}, null); 

      node.SetValue(colImage.AbsoluteIndex, 2); 

      treeList1.EndUnboundLoad(); 
+0

你想在節點旁邊有不同的圖標(如visua studio中的解決方案資源管理器)?或另一列中的圖像? – manji 2011-04-07 07:47:36

+0

圖像在另一列,這就是爲什麼我必須使用XtraTreeList而不是標準TreeView – VoimiX 2011-04-07 08:28:30

回答

1

感謝大家

使用RepositoryItemPictureEdit解決我的問題。有點複雜,但作品

TreeListColumn col = treeList1.Columns.Add(); 
      col.Caption = "Text"; 
      col.Visible = true; 

      TreeListColumn colImage = treeList1.Columns.Add(); 
      colImage.Caption = "ImageColumn"; 
      colImage.Visible = true; 

      RepositoryItemPictureEdit imageEdit = new RepositoryItemPictureEdit(); 
      imageEdit.ShowMenu = false; 

      treeList1.RepositoryItems.Add(imageEdit); 
      colImage.ColumnEdit = imageEdit; 

      treeList1.BeginUnboundLoad(); 

      Image img = imageList.Images[1]; 
      Bitmap bmp = new Bitmap(img); 

      TreeListNode node = treeList1.AppendNode(new object[] { "trololo", bmp }, null); 


      treeList1.EndUnboundLoad(); 
0

這個任務應該使用略有不同的方法來實現圖標。首先,你應該使用RepositoryItemImageComboBox並填充它的Items屬性。每個項目都有值和ImageIndex。 TreeList將顯示在其值等於單元格值的項目的單元格圖像中。這裏是一個要爲你工作的代碼:

 TreeListColumn col = treeList1.Columns.Add(); 
     col.Caption = "Text"; 
     col.Visible = true; 

     TreeListColumn colImage = treeList1.Columns.Add(); 
     colImage.Caption = "ImageColumn"; 
     colImage.Visible = true; 


     RepositoryItemImageComboBox imageEdit = new RepositoryItemImageComboBox(); 
     imageEdit.SmallImages = imageList; 
     for(int i = 0; i < 3; i++) 
      imageEdit.Items.Add(new ImageComboBoxItem(i, i)); // i.e. value and image index 

     treeList1.RepositoryItems.Add(imageEdit); 
     colImage.ColumnEdit = imageEdit; 

     treeList1.BeginUnboundLoad(); 

     TreeListNode node = treeList1.AppendNode(new object[] { "trololo", 2 }, null); 

     node.SetValue(colImage.AbsoluteIndex, 2); 

     treeList1.EndUnboundLoad(); 
+0

感謝您的解決方案。但我只需要在單元格中顯示圖像。我不需要組合框。只有簡單的圖像。我腦海中的任務非常簡單。這就是爲什麼我使用RepositoryItemImageEdit – VoimiX 2011-04-07 08:12:03

+0

我認爲這個解決方案將爲你工作,如果組合框按鈕被隱藏,除非你想完全用一個圖像填充一個單元格。 – manji 2011-04-07 08:58:19

+0

@DevExpress Team,我認爲這行'node.SetValue(colImage.AbsoluteIndex,2);'可以被刪除,對吧? – manji 2011-04-07 08:58:56