質問者
TabControlで同じTabPageを追加する方法

質問
-
Visual BasicのFormアプリケーションで、TabPageの複写方法考えています。
タブの追加作成までは、できている状態です。
ですが、追加時に同じ内容のUsercontrolを追加しようとしているのですが、
追加時のプロパティ名が分からなくて、追加できない状態です。
このやり方はできないのでしょうか?Dim _TabFile1 As TabFile
Private nIndex As Integer = 1Private Sub タブの追加ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles タブの追加ToolStripMenuItem.Click
'タブを追加する
TabControl1.TabPages.Add("tabPage" & nIndex.ToString())
nIndex += 1
_TabFile1 = New TabFile()
_TabFile1.Location = New Point(0, 0)
_TabFile1.TabIndex = nIndex
End Sub
すべての返信
-
こういう事をやりたい?
Public Class Form1 'Dim _TabFile1 As TabFile Private nIndex As Integer = 1 Private Sub タブの追加ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles タブの追加ToolStripMenuItem.Click Dim copy元TabPage As TabPage = Nothing Dim copy元TabFile As TabFile = Nothing 'TabFileはユーザーコントロール? copy元TabPage = TabControl1.SelectedTab '現在選択されているページを元にコピーする If copy元TabPage Is Nothing Then MessageBox.Show("コピー元のTabPageが選択されていません") Exit Sub End If For Each ctl As Control In copy元TabPage.Controls 'コピー元のページに追加されているコントロール一覧を調べる If TypeOf ctl Is TabFile Then 'TabFileが見つかった copy元TabFile = CType(ctl, TabFile) Exit For End If Next If copy元TabFile Is Nothing Then MessageBox.Show("コピー元のTabFileが見つかりません") Exit Sub End If 'タブを追加する TabControl1.TabPages.Add("tabPage" & nIndex.ToString()) nIndex += 1 Dim copy先TabPage As TabPage = Nothing Dim copy先TabFile As TabFile = Nothing copy先TabPage = TabControl1.TabPages.Item(TabControl1.TabPages.Count - 1) '追加されたTabPagesは末尾にある copy先TabFile = New TabFile() copy先TabFile.Location = copy元TabFile.Location copy先TabFile.TabIndex = copy元TabFile.TabIndex '必要ならコピー元からプロパティをコピーする 'copy先TabFile.Size = copy元TabFile.Size 'copy先TabFile.Dock = copy元TabFile.Dock 'copy先TabFile.Margin = copy元TabFile.Margin copy先TabPage.Controls.Add(copy先TabFile)'ページに追加 TabControl1.SelectedTab = copy先TabPage '追加されたページを表示するように End Sub End Class
個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 回答の候補に設定 kumo-msftMicrosoft contingent staff, Moderator 2020年10月26日 0:58
-
RappyKakuwaneさん、こんにちは。フォーラムオペレーターのKumoです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
ご質問いただいた件ですが、その後いかがでしょうか。
gekkaさんから寄せられた投稿はお役に立ちましたか。
参考になった投稿には [回答としてマーク] をお願い致します。
設定いただくことで、
他のユーザーもお役に立つ回答を見つけやすくなります。
お手数ですが、ご協力の程どうかよろしくお願いいたします。MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~