【VB.NET】TabControlでページの複製
- 題名: 【VB.NET】TabControlでページの複製
- 著者: ZAP
- 日時: 2004/10/25 19:29:59
- ID: 6983
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 【VB.NET】TabControlでページの複製
- 著者: java.lang.Nullpo
- 日時: 2004/10/25 19:41:12
- ID: 6984
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 【VB.NET】TabControlでページの複製
- 著者: ZAP
- 日時: 2004/10/26 9:32:21
- ID: 6987
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: 【VB.NET】TabControlでページの複製
- 著者: ZAP
- 日時: 2004/10/26 9:48:53
- ID: 6988
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
はじめまして。
WindowsXP+VB.NET環境で、テキスト形式のファイル
・1項目1行
・複数項目で1レコード
・レコードごとに項目数が変動する(項目自体が省略されることがある)
を読み込み、レコードごとにTabControlのページに出力するアプリを作成しています。
流れとしては、
・データを1行読み込み
・レコードの開始定義行なら新しいページを追加
・項目行なら構造体に格納、同時にフォームの対応する項目に設定
というだけで、レコードごとに構造体(配列)に格納する部分は容易にできました。
TabControlのページ上には、表示用のLabelやTextBoxなどが配置されているわけですが、
いちいちレコードごとにインスタンス作成→コントロールを配置とすると、コード量的に
増加し、流れも追いにくくなってしまうし、同じ要素を持つのだから、ページのコピーを
作成して利用しようと思ったのですが、動的にページを追加する際に、既存ページ上のコ
ントロールのコピーを持ったページを作成できません。
Me.TabControl1.TabPages.Insert(newIndex,"") で空のページを作成し、
Me.TabControl1.TabPages(newIndex) = Me.TabControl1.TabPages(refIndex)
としてページのコピーを作成すると、参照元にしたページまで空白になってしまっています。
また、参照元にしたほうが、代入先で埋まったように見えるからといって、=の左右を入れ
替えたところ、配置されているコントロールはコピーされたように見えますが、値を変更す
ると、全てのページで同じように変更されてしまいます。
これはオブジェクトの参照コピー(といえばいいのでしょうか?)になっているためと
思えば、納得がいきますが、求めているコピーとは違うものです。
独立したコントロールとして、配下のコントロールごと複製する手法というのは、あるのでしょうか?