プロパティグリッドアイテムとアイテムの値をC#で取得するにはどうすればよいですか?例えば :
Name : Ali
LastName : Ahmadi
(NameとLastNameはpropertygridの2つのプロパティです)
プロパティグリッドアイテムとアイテムの値をC#で取得するにはどうすればよいですか?例えば :
Name : Ali
LastName : Ahmadi
(NameとLastNameはpropertygridの2つのプロパティです)
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));
}
正解は:
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";
}