
VB.NET2003 を使用して、
CheckBox付のTreeViewを作成しました。
階層は3階層用意して、最下層のTextに人名・Tagにメールアドレスをセットしました。
下記のサンプルの場合、チェックを入れたDさんのメールアドレスのみを
取得したいのですが、どのよう書けばよろしいでしょうか?
ご教授いただけますよう、お願い致します。
TreeViewイメージ
□本部
□総務課
□Aさん
□Bさん
□人事課
□Cさん
■Dさん
□Eさん
□営業
□東京
□Fさん
□Gさん
TreeView作成コード
Dim parentrow As DataRow
Dim ParentTable As DataTable
For Each parentrow In ds.Tables("A").Rows
Dim parentnode As TreeNode
parentnode = New TreeNode(parentrow.Item("SHOZOKU").ToString)
treeView1.Nodes.Add(parentnode)
''''child'''''
Dim childrow As DataRow
Dim childnode As TreeNode
childnode = New TreeNode
For Each childrow In parentrow.GetChildRows("A")
childnode = parentnode.Nodes.Add(childrow("BUSHO_NAME").ToString)
''''child2''''
Dim childrow2 As DataRow
Dim childnode2 As TreeNode
childnode2 = New TreeNode
For Each childrow2 In childrow.GetChildRows("B")
childnode2 = childnode.Nodes.Add(childrow2("NAME").ToString)
childnode2.Tag = childrow2("MAIL").ToString
Next childrow2
''''''''''''''''''''''''
Next childrow
'''''''''''''''
Next parentrow
treeView1.CheckBoxes = True
No.1ベストアンサー
- 回答日時:
チェックされたのをいつ所得したいのでしょう?
チェックされた時点でいいのであれば TreeViewのAfterChekイベントで
dim nd as TreeNode
nd = e.Node
if nd.Checked then
MsgBox(nd.Tag)
end if
別のイベント たとえば別ボタンのClick時点なら
dim ndParent, ndChaild1, ndChaild2 as TreeNode
dim sb as new System.Text.StringBuilder
for each ndParent in TreeView1.Nodes
for each ndChild1 in ndParent.Nodes
for each ndchild2 in ndChild1.Nodes
if ndChild2.Chkeced then
if sb.Length <> 0 then
sb.Append( vbCrLf )
end if
sb.Append( ndChild2.Tag )
end if
next ' ndChild2
next ' ndChild1
next ' ndParent
MsgBox(sb.ToString)
といった具合になるかと
この回答への補足
教えて頂いた通り、
別のボタンクリック時にデータ取得したいと考えております。
上記内容でまずは試したいと思います。
有り難うございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数に「.」が含まれる場合...
-
レコードセットにnullの場合
-
verilogのcase文
-
ユーザーフォームへのデータ入...
-
Access ○or△文の書き方
-
他のフォームから別のフォーム...
-
C#のループでtextboxに値を入れ...
-
円の自転のさせ方
-
【VB6.0】 あるフォームから他...
-
ループを使ってテキストボック...
-
アクセスできない保護レベルエ...
-
【VB.NET】テキストボックスに...
-
VB.NETでのイベントの途中終了
-
エクセルVBAでテキストボッ...
-
VBA public変数はどのようなこ...
-
Matlabでsin波を使って矩形波を...
-
String型の値にスラッシュをつ...
-
VB6のFriendについて
-
チェックボックスを操作できな...
-
2次元配列のデータをファイルへ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードセットにnullの場合
-
タイムアウトする仕組みを作りたい
-
subsequentとnextの違いってな...
-
C言語のプログラムで...
-
vbsのmsgboxランダム表示について
-
verilogのcase文
-
エクセルvba 値渡しのsu...
-
日付の重複
-
[至急]Project Euler:#21Amicab...
-
リスト間のアイテム移動について
-
変数に「.」が含まれる場合...
-
delphi
-
パスカル言語
-
Verilogの文法
-
Why is 77+33 not equal to 100?
-
Verilog-HDLによる設計において
-
pascalでの二分探索(バイナリ...
-
「for next」文と「if then els...
-
Scilabの&と&&に関する質問です
-
VBAでWorkbook_BeforeSaveイベ...
おすすめ情報