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

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

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

Re[3]: TabControlで指定したタブを隠すには?


(過去ログ 34 を表示中)

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

■17191 / inTopicNo.1)  TabControlで指定したタブを隠すには?
  
□投稿者/ もねを (35回)-(2008/04/18(Fri) 13:23:47)

分類:[VB.NET/VB2005] 

いつも参考にさせていただいています。

現在、タブコントロールを配置して、3つのページを配置しています。
3つめのタブページにはデータグリッドを貼り付けています。

ある条件で3番目のタブを隠したいのです。
また隠されたタブの中に配置しているデータグリッドの値などは計算で使用させたいのでタブが削除されては困るのです。
非表示にしたいだけなのですが・・・

プログラムをこのようにすると隠れたのですが何かふに落ちないのです。

If 特定の条件 then
   tabMain.TabPages.RemoveAt(2) '←これで隠れた
   MsgBox(dgv3.Rows(0).Cells("単価").Value) '←確認のため表示してみた
End if

ソースを書いている途中に表示される画面では、
----------------------
RemoveAt(Index as Integer)
Index:
  削除するSystem.Windows.Forms.TabPageの0から始まるインデックス。
----------------------

と表示されます。
しかし tabMain.TabPages.RemoveAt(2) これを実行すると
削除されたタブの中で使用されているデータグリッドの中身を見ることができます。

RemoveAtとは削除ではなく非表示ということなのでしょうか?
なにかアドバイスよろしくお願いします。

環境:WindowsXP Home / VB2005 Pro /Frameworks2.0

引用返信 編集キー/
■17204 / inTopicNo.2)  Re[1]: TabControlで指定したタブを隠すには?
□投稿者/ まどか (507回)-(2008/04/18(Fri) 14:38:24)
> しかし tabMain.TabPages.RemoveAt(2) これを実行すると
> 削除されたタブの中で使用されているデータグリッドの中身を見ることができます。
>
> RemoveAtとは削除ではなく非表示ということなのでしょうか?

値型と参照型、および、インスタンスについて理解してください。

Dim newTabPage As New TabPage

TabPageクラスの新しいインスタンスが作成され、newTabPageにはその参照(アドレス)が格納されます。

AddやRemoveでは追加削除するインスタンスへの「参照」が対象となります。

tabMain.TabPages.RemoveAt(2)
これはインデックスが2番に格納されている参照アドレスを削除するという意味になります。
手にロッカーの鍵をいくつか持っているとしてその鍵を捨てることです。
その鍵に対応したロッカーの区画とその中身が消えるわけではありません。

ちなみに中身(インスタンス)が消えるのはインスタンスへの参照を誰も保持しなくなったときです。
#正確には「消える対象となるのは」

あと値型ですが、
Dim list As New Generic.List(Of Integer)
list.Add(123)
list.RemoveAt(0)

Integerは値型ですのでRemoveAt(0)により123そのものがメモリから消えます。
引用返信 編集キー/
■17205 / inTopicNo.3)  Re[2]: TabControlで指定したタブを隠すには?
□投稿者/ まどか (508回)-(2008/04/18(Fri) 14:47:41)
#題名の答えをしていなかった。。。

というわけで、表示・非表示と物理的にオブジェクトが無くなることは違います。

TabPageはControlではなくComponentですので、そのような操作が無いと思われます。
なのでTabPageの場合はコレクションに対して追加削除することが代替操作になります。
引用返信 編集キー/
■17219 / inTopicNo.4)  Re[3]: TabControlで指定したタブを隠すには?
□投稿者/ もねを (36回)-(2008/04/18(Fri) 19:52:44)
まどかさん

アドバイスありがとうございました。
参照型はぴんとくるのですが値型がまだぴんときていません。
鍵の比喩は大変参考になりました。イメージがわきました。
いろいろと勉強をして見たいと思います。

ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -