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

わんくま同盟

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

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


■89121 / )  Re[13]: チェックボックスを使った計算
□投稿者/ 魔界の仮面弁士 (1914回)-(2018/10/31(Wed) 22:34:46)
No89120 (コジコジ さん) に返信
> 「TabControl」で使用しようと、
> 「Panel1.Controls.OfType」から
> 「TabControl1.SelectedTab.Controls.OfType」に変更したのですが、
> 動作しませんでした。

SelectedTab プロパティは、「TabControl 上で現在選択されている TabPage」を返します。

ゆえに Load イベントの時点では、
TabControl1.SelectedTab.Controls.OfType(Of ) は
TabPage1.Controls.OfType(Of ) と同義になってしまうためです。

最初の AddHandler については、選択タブとは関係なく、
すべての CheckBox に対して割り当てるように書き換えましょう。


また、クリック順を保持するための List(Of CheckBox) の管理にも注意が必要です。

先のコードでにある、Private checked As New List(Of CheckBox)() には
「選択された CheckBox」を、チェックされた順に
記録されるための変数です。しかしそれゆえ、そのまま真似ると、
TabPage1 上のチェックボックスと
TabPage2 上のチェックボックスが
混在して記録されてしまう事になります。

しかし、今回の仕様では、
>> 選択されていないタブは含みません。
という条件が含まれますので、別のタブにある CheckBox が
混じってしまうと、少々都合が悪いでしょう。


そこで、それぞれのタブごとに分けてカウントできるようにするために、

(案1) 25 個のタブそれぞれのために、List(Of ) のインスタンスも 25 個用意して対処する。

(案2) 1 つの List(Of ) 内に、すべての TabPage 上のチェックボックスを混在して格納するが、
 Label に表示する際に、どのページ上の CheckBox なのかを判断して集計させる。

のいずれかの対処をとるといった方法が思い当たります。
返信 編集キー/


管理者用

- Child Tree -