C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: TabPage内コントロールのOnCreateControl


(過去ログ 84 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■49842 / inTopicNo.1)  TabPage内コントロールのOnCreateControl
  
□投稿者/ タカミ (6回)-(2010/05/20(Thu) 10:33:48)

分類:[.NET 全般] 

Visual Studio2005でC#で開発しています。

Form内にTabControlを貼り、TabPageにTextBoxやButtonの派生コントロールを貼っています。
派生コントロールではOnCreteControl()にてコントロール毎の独自初期化処理を行っています。

問題は、TabPage2ページ目以降の中に貼ってあるコントロールのOnCreateControlがFormLoad時に呼ばれないということです。
タブをクリックしてそのTabPageを表示するときに呼ばれます。
現在、FormLoad時に画面内のすべてのコントロールに値を設定しているのですが、
OnCreateControlでの初期化が行われないため、派生コントロールに値が設定できない状況になっています。
(派生コントロールは初期化しないとTeztなどの一部のプロパティが使えない仕様になっています)
TabPageの派生を作って調べたところ、2ページ目以降のTabPage自体のOnCreateControlがFormLoad時に呼ばないのがわかりました。
TabPageのCreateControl()を呼んでもOnCreateControlは呼び出されませんでした。
タブ選択時にOnCretaeControlが呼ばれるのでLoadで値を設定する前に全タブをSelectTab()してやるという回避策はありますが、
何かTabControlの設定等でTabPageのOnCreateControlを呼ぶようにできないのでしょうか。
引用返信 編集キー/
■49844 / inTopicNo.2)  Re[1]: TabPage内コントロールのOnCreateControl
□投稿者/ 魔界の仮面弁士 (1654回)-(2010/05/20(Thu) 10:47:40)
No49842 (タカミ さん) に返信
> タブ選択時にOnCretaeControlが呼ばれるのでLoadで値を設定する前に全タブをSelectTab()してやるという回避策はありますが、

選択するのではなく、TabPage.Visible = true を呼び出してみるとか。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=10441&KLOG=23
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -