ボタンコントロールを配列にするには?

解決


なまぐり  2007-06-07 19:55:04  No: 98915

いつもお世話になっております。

ユーザコントロールに設定しているボタンを配列化させたいのですが
うまくいきません。

実際には、

  ・ユーザコントロール画面にボタンを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の設定が足りないのでしょうか?

どなたかご教授お願いします。


のん  2007-06-07 21:07:48  No: 98916

こっちは、VB2〜VB6の掲示板だけど、
この記述方式は.NET?


なまぐり  2007-06-07 22:01:58  No: 98917

のんさん、ご指摘ありがとうございます。

掲載する場所を間違えてしまったみたいでした。
すみません。質問内容は.NETです。

そちらの方で再度質問させていただきたいと思います。


なまぐり  2007-06-07 22:06:21  No: 98918

掲示場所誤りということで、こちらは削除→[解決]とさせていただきます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加