- - PR -
内部のコントロールを返すプロパティを持つユーザーコントロールについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-08-27 22:34
はじめまして。
はるとパパといいます。 C# VS.Net2003 でユーザーコントロールに貼り付けたコントロールを 返すプロパティを作成したのですが、できあがったユーザーコントロールを デザイナ画面でフォームに貼り付け、プロパティウィンドウから ユーザーコントロールのNameプロパティを変更すると、 最初のビルドがエラーになってしまいます。 2回目からは正常にビルドができるのですが、最初のビルドのエラーを なくしたいのです。 何か良い方法があるのでしょうか? コントロールを返すプロパティ public class UserControl1 : System.Windows.Forms.UserControl { private System.Windows.Forms.ComboBox comboBox1; 〜省略〜 [ Description("ユーザコントロール内にあるコンボボックスを取得します。"), Category("コントロール"), DesignerSerializationVisibility(DesignerSerializationVisibility.Content) ] public ComboBox CboBox { get { return this.comboBox1; } } } ビルドエラーになるのは、フォームデザイナで作成されたコードの this.uctControl.Controls.Add(this.userControl11.CboBox); の部分です、"uctControl"が後から命名したコントロール名で、"userControl11"が 画面に貼り付けたときにデフォルトで命名されたコントロール名です。 最初のビルドのときはここが書き換わらないためエラーになります。 (エラー後書き換わる。) DesignerSerializationVisibilityをDesignerSerializationVisibility.Visible にするとエラーは起きませんが、プロパティウィンドウでの設定値が反映されないんですよ。 |
|
投稿日時: 2004-08-27 22:54
コンボボックスを丸ごと返すプロパティではなく、
コンボボックスの必要な一部のプロパティのみ外に出せばいいんでは無いでしょうか? _________________ えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12 えムナウのプログラミングのページ Blog1 Blog2 |
|
投稿日時: 2004-08-31 10:18
えムナウさん
早速の返答、ありがとうございます。 確かに、必要なプロパティだけを外に出せばいいのですが、 今の段階で、何を外に出せばいいのかが洗い出せていないので、 コントロールを丸ごと返す方法を選択してしまいました。 もう少し考えてみます。 |
1