|
■No81963 (MAC さん) に返信 > 例えば、以下のクラスの情報を
全部のメンバーが private になっていますが、本当に良いのですか?
もしもこれらのメンバーが public なプロパティだったのなら、 PropertyGrid で表示させることもできるのですが。
test objTest; public Form1() { InitializeComponent();
PropertyGrid propertyGrid1 = new PropertyGrid(); propertyGrid1.Name = "propertyGrid1"; propertyGrid1.Dock = DockStyle.Fill; Controls.Add(propertyGrid1);
objTest = new test() { a = 12, b = 34, s2 = "TEST" }; propertyGrid1.SelectedObject = objTest; }
本当に、private なフィールドのみで構成されているのだとしたら、 外部からは Reflection でしか取り出せなくなってしまいます。
var fs = objTest.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic); listBox1.DataSource = fs.Select(f => $"{f.Name}\t{f.GetValue(objTest)}").ToArray();
> 以下のように表示する画面を作りたいです。 ListView を使うのは如何でしょうか。 エクスプローラーで、右側の詳細表示に使われているコントロールです。
> datagrid コントロールくらいしか思いつかないのですが、 > 要素は列方向(横方向)にしか追加ができないため適当でないと考えています。 任意の行数・列数にできますよ。
public Form1() { InitializeComponent(); DataGridView dgv = new DataGridView(); dgv.Dock = DockStyle.Fill; dgv.AllowUserToAddRows = false; dgv.RowCount = 2000; dgv.ColumnCount = 40; Controls.Add(dgv); }
> 初歩的な質問で申し訳ありませんが
質問内容が、本当に初歩的かどうかを判断できるのであれば、 その人はもはや初心者ではないと思います。(^^;
|