いつもお世話になっております。
ユーザコントロールに設定しているボタンを配列化させたいのですが
うまくいきません。
実際には、
・ユーザコントロール画面にボタンを1つ保持 (Name=Button1)
・フォームからの呼び出し時にボタンを3つ表示するため、
ユーザコントロール内でボタンを生成
(Name=Button2、Button3)
・ユーザコントロール内のボタンを配列化する
Dim typ As System.Type = form.GetType()
Dim pi As System.Reflection.PropertyInfo
Dim ctrs As New System.Collections.ArrayList
Dim i As Integer = 1
While True
pi = typ.GetProperty(name + i.ToString(), _
System.Reflection.BindingFlags.Public Or _
System.Reflection.BindingFlags.NonPublic Or _
System.Reflection.BindingFlags.Instance Or _
System.Reflection.BindingFlags.DeclaredOnly)
i += 1
If pi Is Nothing Then
Exit While
Else
ctrs.Add(pi.GetValue(form, Nothing))
End If
End While
If ctrs.Count = 1 Then
Return Nothing
Else
Return ctrs.ToArray(ctrs(0).GetType())
End If
ここで、元々フォームに貼り付けていたボタンについては
配列に設定できたのですが、プログラムで生成したボタンは
上記pi=Nothingとなってしまい設定できませんでした。
BindingFlagsの設定が足りないのでしょうか?
どなたかご教授お願いします。
こっちは、VB2〜VB6の掲示板だけど、
この記述方式は.NET?
のんさん、ご指摘ありがとうございます。
掲載する場所を間違えてしまったみたいでした。
すみません。質問内容は.NETです。
そちらの方で再度質問させていただきたいと思います。
掲示場所誤りということで、こちらは削除→[解決]とさせていただきます。
ツイート | ![]() |