- - PR -
TabControl のタブ配列を変更したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-08-09 07:18
【状況説明】
WindowsXP、VB2005EE Access2003 でWindowsアプリケーションを開発中です。 現在TabControlを使って5枚のタブページを切替表示しています。(タブ配列は左からA,B,C,D,E と配列) ところが左から4枚目のページをデザイナーで編集していたら、ある時から5枚目に移動してしまい A,B,C,E,D とページが変わってしまいました。何かの関係で TabControl のタブ配列プロパティが 変更されてしまったのだろうとTabControl のそれらしいプロパティを探してみましたが、 どのプロパティが変更されてしまったのか探せません。過去ログを検索しても探しきれず困っています。 【質問内容】 TabControl のタブ配列を変更するには、どのようにすればよいのでしょうか。 大変初歩的な質問ですがよろしくお願いいたします。 [ メッセージ編集済み 編集者: One.net 編集日時 2008-08-09 07:21 ] | ||||
|
投稿日時: 2008-08-09 11:52
推測で申し訳ないですが、デザイナ内で
Me.TabControl1.Controls.Add(Me.TabPageA) Me.TabControl1.Controls.Add(Me.TabPageB) Me.TabControl1.Controls.Add(Me.TabPageC) Me.TabControl1.Controls.Add(Me.TabPageE) Me.TabControl1.Controls.Add(Me.TabPageD) という感じにTabItemを追加しているのではないでしょうか? そうであるならば、 Me.TabControl1.Controls.Add(Me.TabPageA) Me.TabControl1.Controls.Add(Me.TabPageB) Me.TabControl1.Controls.Add(Me.TabPageC) Me.TabControl1.Controls.Add(Me.TabPageD) Me.TabControl1.Controls.Add(Me.TabPageE) としてやれば戻ると思います。 | ||||
|
投稿日時: 2008-08-09 12:51
とーちゃんさん。回答ありがとうございます。
推測いただいたTabControl1.Controls.Add() は使はず、デザイナでTabControl1の「タブの追加」で タブを左から順に作成しました。ただし次のようなオーナードローを掛けていますが関係あるでしょうか。
| ||||
|
投稿日時: 2008-08-09 13:47
原因として考えられるのは、
・InitializeComponent内のMe.TabControl1.Controls.Add(「TabPage」)の順序を変更してしまった。 ・デザイナのTabPagesプロパティ内で要素の順序を変更した。 が主なものになるかと思いますが、 何がおこったのかの原因追求は、 現象を再現できるソースを提示いただくか、 過去のソースログでも残っていない限り、 難しいかと思います。 現状、A,B,C,E,D とタブが作成されているのであれば、 以下のプロパティをデザイナ上で確認したとき、A,B,C,E,D とならんでませんか? TabControl.TabPagesプロパティ http://msdn.microsoft.com/ja-jp/library/system.windows.forms.tabcontrol.tabpages(VS.80).aspx | ||||
|
投稿日時: 2008-08-09 14:15
Toshiさん、ありがとうございました。
ご指摘いただきました「TabControl.TabPages」プロパティのコレクションを見てみましたら 現在、A,B,C,E,D とタブが配列されていました。早速 A,B,C,D,E と修正しますと正常に戻りました。 私は「TabControl.TabPages」プロパティのあることも分らず修正できなくて困っておりました。 大変ありがとうございました。 | ||||
|
投稿日時: 2008-08-09 14:47
念のため補足です。
とーちゃん さんのおっしゃっている方法でも修正が 可能であることは理解しておいて下さい。 デザイナで設定した内容は、ソースコードに反映されます。 TabPageの追加の場合、
という感じのソースがInitializeComponentに記載されているはずです。 デザイナは、あくまでソースコードを書くための1ツールであるということを 認識しておいて下さい。 デザイナで設定した内容がどのようにソースに反映するのか理解することで、 問題の解決が早まるはずです。 | ||||
|
投稿日時: 2008-08-09 20:01
Toshiさん、補足説明をいただきありがとうございました。
ご指摘いただいたForms1.Designer.vbを見ますとTabPageの追加のソースコードがあることを確認いたしました。 「なるほどこのコードを修正しても解決できるのか」と理解できました。ただ私はVB.netをはじめから デザイナで作成したため、動的にソースコードで各種のコントロールを配置していくという感覚がなく、 もっぱらドラック&ドロップで配置していくものと思っていました。 ありがとうございました。 |
1