2012-12-12 118 views
1

索引I顯示字符串數組列表框屬性網格型變換器與代碼如下。
如何選擇listbox的索引來初始化第一次加載的程序?我想SelectedIndex = 0,顯示第一個arrData =「一個」。任何想法?如何選擇列表框

public partial class Form1 : Form 
{ 
    string[] arrData = new string[] { "one", "two", "three" }; 
    PropertyGrid pGrid = new PropertyGrid(); 

    public Form1() 
    { 
     InitializeComponent(); 

     FirstClass fClass = new FirstClass(arrData); 
     pGrid.SelectedObject = fClass; 
     pGrid.Dock = DockStyle.Fill; 
     this.Controls.Add(pGrid); 
    } 

    public class FirstClass 
    { 
     public FirstClass(string[] arrData) 
     { 
      this.DataSource = arrData; 
     } 

     [Browsable(true)] 
     [DefaultValue("one")] 
     [TypeConverter(typeof(SecondClass))] 
     public string Counter { get; set; } 

     [Browsable(false)] 
     public string[] DataSource { get; set; } 

    } 

    public class SecondClass : StringConverter 
    { 
     public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 
     { 
      return true; 
     } 

     public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 
     { 
      FirstClass fClass = (FirstClass)context.Instance; 
      if (fClass == null || fClass.DataSource == null) 
      { 
       return new StandardValuesCollection(new string[0]); 
      } 
      else 
      { 
       return new StandardValuesCollection(fClass.DataSource); 
      } 
     } 

    } 

} 

回答

0

如果我理解你的權利,應該是那麼容易,因爲下面這段代碼,如果你只是想在一個列表框設置所選項目的索引爲0。

ListBox.SelectedIndex = 0; 

欲知詳情,請查看MSDN頁面。

http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.selectedindex.aspx

+0

你是對** ListBox.SelectedIndex = 0; **對於設置如果使用的話列表框控件,但問題是計數器屬性時使用的字符串類型,而不是列表框列表框的索引。 –