2012-12-29 59 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); 
     } 
    }