|
分類:[.NET 全般]
使用言語:VB.NET CheckedListBoxで選択された順にフォームを出す方法に関してお教えください。 Formは計5枚。
Form1にて、表示したいフォーム(Form2,3,4)をチェックリストボックスで選択し、ボタンをクリックをしたあと、 表示したいフォームが順に表示され、最後にForm5のみが表示され終了。 Form2,3,4,5はフォーム上にボタンのみとします。
・Form1 Form1には、CheckedListBoxとButtonがあります。 コード案
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load CheckedListBox1.BeginUpdate() CheckedListBox1.Items.Add("Form2を表示") CheckedListBox1.Items.Add("Form3を表示") CheckedListBox1.Items.Add("Form4を表示") CheckedListBox1.EndUpdate() End Sub ’チェックリストボックスの項目を設定
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
’Form2,3,4を順に表示したい
Me.Hide() ’Form1を画面上から消す。Form1を閉じるのはチェックリストボックスの最後にチェックの入ったフォームが閉じられるときに合わせて閉じる End Sub
このとき、Form1におけるコード内容についてお教えいただきたいのですが、 以前同様の質問をし、アドバイス(下部引用)をいただきました。 その後、参考書等をもとにコードを書いては見たものの、
>インデックス用変数idxを用意します。 > 各Formを開くときにFormClosingかFormClosedイベントにAddHandlerにより処理を割り当てるようにします。
この内容について理解することができず、現在も作成できておりません。 そこで、大変申し訳ないのですが、コードで教えいただけないでしょうか。 内容は2点です。 チェックリストボックスをもとにフォームを表示したい場合のコードと、 Form1をForm5が表示されるタイミングで閉じるには、 Me.Hide()でよろしいのでしょうか
宜しくお願い致します。
> CheckedListBoxにはCheckedIndices(チェックの入っているアイテムのインデックスコレクション)とか > CheckedItems(チェックの入っているアイテムのコレクション)などがあるのでこれらの中身を参照して > リストを作ります。このリストを順番に参照するためのインデックス用変数idxを用意します。 > 各Formを開くときにFormClosingかFormClosedイベントにAddHandlerにより処理を割り当てるようにします。 > この処理では閉じたとき次のFormを開くようにします。この処理でidxを+1すれば次々と開いていくことが可能になります。
|