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

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

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

Re[2]: treeviewでのチェックボックスのチェック有無について


(過去ログ 136 を表示中)

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

■80138 / inTopicNo.1)  treeviewでのチェックボックスのチェック有無について
  
□投稿者/ ひらた (1回)-(2016/06/15(Wed) 23:46:47)

分類:[.NET 全般] 

Win7で、vb.net2010を使っています

TREEVIEWにチェックボックスを備えて、
Cドライブのフォルダ一覧を表示させています

下記コードで行なうと、以下になります

@treeviewでチェックボックスにチェックがない場合

Atreeviewでルートと親フォルダを除く、子フォルダ以下だけの
チェックボックス(単数・複数)にチェックがある場合

Btreeviewでルートを除く親フォルダだけの
チェックボックス(単数・複数)にチェックがある場合

⇒@A共にエラー とメッセージ表示されますので
問題ありません

⇒Bメッセージが表示されませんので、問題ありません

Ctreeviewでルートを除く親フォルダのチェックボックス
(単数・複数)にチェックが入っていて、ルートと親フォルダ
を除く子フォルダ以下のチェックボックス(単数・複数)
にチェックが入っている場合
⇒Cメッセージが表示されませんので、エラー とメッセージ
表示させたく思います

VB.NETで行なうにはどのようにしたら良いでしょうか?

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim isChecked As Boolean = False
For Each node As TreeNode In TreeView1.Nodes(0).Nodes
If node.Checked Then
isChecked = True
Exit For
End If
Next
If isChecked = False Then
MessageBox.Show("エラー", "警告")
End If
End Sub

長文を最後まで読んで下さりありがとうございました


引用返信 編集キー/
■80142 / inTopicNo.2)  Re[1]: treeviewでのチェックボックスのチェック有無について
□投稿者/ Azulean (653回)-(2016/06/16(Thu) 06:01:14)
No80138 (ひらた さん) に返信
どういう場合にエラーと表示したいのか、ルールを明確に書き出せませんか?
パターンから共通項を見いだして、こういう風にしたいのだろうと読み手に推測させる質問になっているためです。

> Btreeviewでルートを除く親フォルダだけの
> チェックボックス(単数・複数)にチェックがある場合
>
> ⇒@A共にエラー とメッセージ表示されますので
> 問題ありません

ループに使っている TreeView1.Nodes(0).Nodes は「ルートノードが直下に保有するノードの集合」です。
よって、あなたの言うところの「親フォルダー」だけではないでしょうか。
もし、「ルートにもチェックがあること」を求めるなら、その処理を書く必要があります。


> Ctreeviewでルートを除く親フォルダのチェックボックス
> (単数・複数)にチェックが入っていて、ルートと親フォルダ
> を除く子フォルダ以下のチェックボックス(単数・複数)
> にチェックが入っている場合
> ⇒Cメッセージが表示されませんので、エラー とメッセージ
> 表示させたく思います

先にも書いたように、Nodes 中の Nodes など、必要な階層分、子供ノードを走査していく必要があります。
https://msdn.microsoft.com/ja-jp/library/wwc698z7

-----
あなたの望むこと次第ですが、チェックがついているノードを見つけたら、そのノードの Parent をループや再帰で検査して、そのツリーがすべてチェックされているかを判定する処理がいるのかもしれません。
ループや再帰をご存じない場合はそれについて学ぶところから。
引用返信 編集キー/
■80143 / inTopicNo.3)  Re[2]: treeviewでのチェックボックスのチェック有無について
□投稿者/ ひらた (2回)-(2016/06/16(Thu) 08:05:09)
Azulean様

回答ありがとうございます

説明が曖昧で申し訳ありませんでした


TREEVIEWにチェックボックスを備えて、Cドライブのフォルダ一覧を表示させています
チェックボックスがあり、チェックボックスにチェックしたのか否かについてメッセージを表示させたく思います

【エラーとメッセージ表示を行ないたい場合】

@treeviewでチェックボックスに1つもチェックがない場合

Atreeviewでルートと親フォルダを除く、子フォルダ以下だけのチェックボックス(単数・複数)にチェックがある場合

Btreeviewでルートを除く親フォルダのチェックボックス(単数・複数)にチェックが入っていて、
 ルートと親フォルダを除く子フォルダ以下のチェックボックス(単数・複数)にチェックが入っている場合

⇒@Aについては、提示したコードでエラーとメッセージ表示されます

⇒Bについては、提示したコードでエラーとメッセージが表示されませんので、表示したく思います ※Bの内容が出来ません

【エラーとメッセージ表示を行なわない場合】

Ctreeviewでルートを除く親フォルダだけのチェックボックス(単数・複数)にチェックがある場合

⇒Cについては、エラーとメッセージ表示をする必要がありませんので、提示したコードで問題ありません




引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -