none
ユーザコントロールに内包するコントロールのXXXタスクについて RRS feed

  • 質問

  • ユーザコントロール内にボタンとリストボックスを配置しています。

     

    リストボックスだけの場合、リストボックスの右上に小さい矢印があり、クリックして「ListBoxタスク」からデータバインドの設定が

    簡単にできるのですが、ユーザコントロールに内包した場合、「ListBoxタスク」を開けるように右上の小さい矢印を公開するには

    どうしたらよいでしょうか?

     

    またユーザコントロールを配置したとき、リストボックスのプロパティをユーザコントロールのプロパティとして公開するには

    どうしたらよいでしょうか。

     

    よろしくお願いいたします。

    2007年10月23日 3:28

回答

  • こんばんわ、

     

    DataSourceに以下の属性をつけてみてください。

     

      [AttributeProvider(typeof(IListSource))]

     

    これで対応できるはずです。

     

    2007年10月25日 16:29

すべての返信

  • こんばんわ。

     

     kumindaran さんからの引用

    またユーザコントロールを配置したとき、リストボックスのプロパティをユーザコントロールのプロパティとして公開するには

    どうしたらよいでしょうか。

     

    こちらですが、ユーザーコントロールでプロパティとして公開する必要があります。

    コード ブロック

     

    public class OriginalControl

    {

    public bool ListBoxEnable

    {

    get

    {

    return listBox1.Enable;

    }

    set

    {

    listBox1.Enable = value;

    }

    }

    }

     

     

     

    このような形で公開すると、デザイナ上でListBoxのEnableをユーザーコントロールのプロパティとして設定が可能になります。

     

    次に、

     kumindaran さんからの引用

    リストボックスだけの場合、リストボックスの右上に小さい矢印があり、クリックして「ListBoxタスク」からデータバインドの設定が

    簡単にできるのですが、ユーザコントロールに内包した場合、「ListBoxタスク」を開けるように右上の小さい矢印を公開するには

    どうしたらよいでしょうか?

    こちらですが、VisualStudioの右上の矢印(スマートタグ)を利用するには、UserControlのデザイナでの動作をカスタマイズする必要があります。

    こちらを参考にしてみてください。

     

    [方法 : Windows フォーム コンポーネントにスマート タグを追加する]

    http://msdn2.microsoft.com/ja-jp/library/ms171830(VS.80).aspx

2007年10月23日 16:39
  • ありがとうございます。

    ユーザコントロール内のリストボックスについてのDataSourceをプロパティウィンドウで

    設定できるようにしたいのですが、うまくできません。

     

            [Category("その他")]
            [Bindable(true)]
            [Browsable(true)]
            [Description("")]
            [DefaultValue(null)]
            public object DataSource
            {
                get
                {
                    return this.listBox.DataSource;
                }
                set
                {
                    this.listBox.DataSource = value;
                }
            }

     

    DataSourceの指定がDataSetやXXXBindingSourceにできるように

    したいのですが、どのようにすればよいでしょうか。

    2007年10月25日 13:44
  • こんばんわ、

     

    DataSourceに以下の属性をつけてみてください。

     

      [AttributeProvider(typeof(IListSource))]

     

    これで対応できるはずです。

     

    2007年10月25日 16:29
  • 情報も少なかったので、仕方なく、自前でプロパティにセットして

    しのいでいましたが、教えていただいた方法でできました。

    ありとうございました!

    2007年11月1日 13:28