0

フォーム構造:

a) form1 には 4 つのチェックボックスがあり、form2 には 4 つのタブページを持つ tabcontrol1 があります。

b) form1 の各チェックボックスは、form2 のタブページにリンクされています。

c) 各タブページには固定コントロールがあります。

上記の構造で次のことを達成しようとしていますが、

a) form1 の「OK」ボタンを使用して、チェックボックスがオンになっているタブページのみをユーザーに表示したい。

b) form2 の [キャンセル] ボタンを使用して、コントロールを含むすべてのタブページを復元したいと考えています。


以下を試しましたが、期待どおりに機能せず、空白のタブページが追加されます。

form1の「OK」ボタンの下のコード:

If CheckBox1.Checked Then
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(1))
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(2))
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(3))
End If
If CheckBox2.Checked Then
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(0))
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(2))
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(3))
End If
If CheckBox3.Checked Then
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(0))
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(1))
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(3))
End If
If CheckBox4.Checked Then
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(0))
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(1))
   Form2.TabControl1.TabPages.Remove(Form2.TabControl1.TabPages(2))
End If
Me.Hide()
Form2.Show()

Form2 の [キャンセル] ボタンの下のコード:

Me.Refresh()
TabControl1.TabPages.Insert(1, TabPage2)
TabControl1.TabPages.Insert(2, TabPage3)
Me.Hide()
Form1.Show()
4

1 に答える 1

0

タブページを削除する代わりに、TabPageのHide()およびShow()関数を使用します。

于 2012-12-12T05:06:30.317 に答える