2012-08-23 34 views

回答

3

正確答案是:

private void button1_Click(object sender, EventArgs e) 
{ 
    GridItem gi = propertyGrid1.SelectedGridItem; 
    while (gi.Parent != null) 
    { 
     gi = gi.Parent; 
    } 
    foreach (GridItem item in gi.GridItems) 
    { 
     ParseGridItems(item); //recursive 
    } 
} 

private void ParseGridItems(GridItem gi) 
{ 
    if (gi.GridItemType == GridItemType.Category) 
    { 
     foreach (GridItem item in gi.GridItems) 
     { 
      ParseGridItems(item); 
     } 
    } 
    textBox1.Text += "Lable : "+gi.Label + "\r\n"; 
    if(gi.Value != null) 
     textBox1.Text += "Value : " + gi.Value.ToString() + "\r\n"; 
} 
5

PropertyGrid是剛剛超過一個對象的組件的模型表示的圖。而不是看網,我會說:看看組件的模型,例如:

var props = TypeDescriptor.GetProperties(obj); 
foreach(var prop in props) { 
    string name = prop.DisplayName; 
    if(string.IsNullOrEmpty(name)) name = prop.Name; 
    Console.WriteLine("{0}: {1}", name, prop.GetValue(obj)); 
} 
相關問題