none
Form を開いたデザイナで、Form に配置された UserControl 上の DataGridView のプロパティを変更したい RRS feed

  • 全般的な情報交換

  • UserControl に DataGridView を配置して 1つのコントロールとしました。

     

    その UserControl を Form に貼り付けると、Form を表示した状態のデザイナ

    では、UserControl 上の DataGridView のプロパティをプロパティ ブラウザで

    編集することができません。

     

    こんな時、UserControl 上の DataGridView のプロパティをプロパティ ブラ
    ウザで編集する方法はあるのでしょうか?

     

    追記 (1) に示す通り、UserControl 側で DataGridView のプロパティを
    UserControl のプロパティとして公開すると、プロパティ ブラウザに表示で
    きる上に、設定もできるようになります。

     


    下記参考の中では、たった1つのプロパティを設定・公開する例が出ていますが、
    もっと多くのプロパティをまとめて公開し、設定可能とするにはどうしたらい
    いのでしょう?

    # 一つずつプロパティ化するのが面倒。

     

    試しに乱暴ですが DataGridView のインスタンスそのものを UserControl のプ
    ロパティとして公開しても、設定は有効になりません。

     

     

    ※ 下記スレッドの 6番目の書き込みで質問の背景を説明しています。

    - プログラムで変数を定義したい

     

     

    + 追記 (1)

    UserControl 上に DataGridView を配置した場合、

     

    Code Snippet

    public partial class UserControl1 : UserControl
    {
      public BindingSource DataGridViewBindingSource
      {
        get
        {
          return (BindingSource)this.dataGridView1.DataSource;
        }
        set
        {
          this.dataGridView1.DataSource = (BindingSource)value;
        }
      }
      ....
    }

     

    とすることで、DataGridView の DataSource を UserControl のプロパティ ブ
    ラウザ上に表示できるようになりました。プロパティ ブラウザで
    BindingSource を設定してやると、期待通りの表示をしてくれました。


    但し、DataGridView のタグボタンは現れなくなりました。

     

     

    参考
    - 方法 : 内在コントロールのプロパティを公開する
    ms-help://MS.VSCC.v90/MS.msdnexpress.v90.ja/dv_fxmclictl/html/5c1ec98b-aa48-4823-986e-4712551cfdf1.htm

    2008年2月18日 3:24