2012-12-29 58 views
-1

我對c#不是很有經驗。我正在使用winforms,我正在尋找一種方法來創建類似於此模板的元素列表,類似於visual studio的自動完成列表。 可以做嗎?我應該使用listbox還是listview?Winforms列表框或列表視圖圖像和文本

編輯 對不起我的問題是不明確的,我不希望創建一個自動完成的,但我想創造什麼是一樣的東西this的事情的清單與旁邊的那個東西的文字圖標。

+0

[自動完成文本框在C#(http://www.c-sharpcorner.com/UploadFile/mahesh/AutoCompletion02012006113508AM/AutoCompletion.aspx)這是你想要的嗎? – bwdeng

回答

0

據我所知,您可以創建自定義UserControl或創建一個Form並將ListBox放入其中。如果您使用From,請確保您更改邊框樣式佈局,只需將其設置爲無。創建使用後,它應該創建形式,並顯示您希望是這樣的:

FrmAutoComplete x = new FrmAutoComplete(); 
x.Show(); 

你可以把這個表格ToolTipItem並顯示它。

祝你好運。

0

這是一個在ListView控件中使用圖像的快速而骯髒的示例。由於我沒有很多關於你打算做什麼的信息,我試圖保持簡單。

簡而言之,您需要將一些圖像加載到內置Listview控件的ImageList(Large或Small)中,併爲它們分配鍵,以便在添加它們時將它們分配給特定的列表項。

這個技巧是確定哪個圖像用於特定的列表項目(假設有不同的圖像分配給不同的列表項目,取決於某些區分因素),在本例中,我使用了「cars」的任意賦值或「卡車」,並簡單地決定,列表中的前五項是汽車,最後五項是卡車,然後使用圖像鍵爲每個列表視圖項添加適當的分配圖像。更復雜的場景,並且在使用圖像密鑰時,添加項目的順序無關緊要。

對於此用例,您需要創建或使用尺寸爲16 x 16像素的圖像。並將兩個圖像添加到我的項目資源文件中,然後簡單地按照使用項目Properties.Resources命名空間來隱藏它們。還有其他方法可以做到這一點,但這對我來說是最方便的。

希望有所幫助。

public partial class Form1 : Form 
{ 
    static string CAR_IMAGE_KEY = "Car"; 
    static string TRUCK_IMAGE_KEY = "Truck"; 

    public Form1() 
    { 
     InitializeComponent(); 
    } 


    private void Form1_Load(object sender, EventArgs e) 
    { 
     this.SetupListview(); 
     this.LoadListView(); 
    } 


    private void SetupListview() 
    { 
     var imgList = new ImageList(); 
     imgList.Images.Add("Car", Properties.Resources.jpgCarImage); 
     imgList.Images.Add("Truck", Properties.Resources.jpgTruckImage); 

     var lv = this.listView1; 
     lv.View = View.List; 
     lv.SmallImageList = imgList;    
    } 


    private void LoadListView() 
    { 
     for(int i = 1; i <= 10; i++) 
     { 
      string currentImageKey = CAR_IMAGE_KEY; 
      if(i > 5) currentImageKey = TRUCK_IMAGE_KEY; 
      var item = this.listView1.Items.Add("Item" + i.ToString(), currentImageKey); 
     } 
    }