質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

3回答

13402閲覧

C#でPanel内のCheckBoxにアクセスする方法

juam

総合スコア26

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

2グッド

0クリップ

投稿2018/02/09 02:08

編集2018/02/09 02:19

現在Windowsアプリケーション開発をVS2017、C#にて行っています。

あるフォームに配置したpanel(Aとします)内にCheckBoxを4つ配置しています。
このCheckBoxが1つ以上チェックがされているかどうかをある処理を実行する際に判定します。

その実現には4つのCheckBoxのCheckedプロパティを1つ1つ見ていけば良いのですが、
panel-Aには今後CheckBoxが追加される可能性があり、判定漏れを防ぐためにも
「panel-A内に配置されたすべてのCheckBoxのCheckedプロパティにアクセスする」
という事をしたいのですが、そういった方法があればご教授頂きたく思っています。

以下、開発環境の情報です。
・開発PC OS:Windows8.1
・Windows フォームアプリケーションの開発
・.NET 4.5.2

bochan2, takagiko👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/02/09 02:11

何を作っているか(Windows Forms? ASP.NET Web Forms? その他?)と開発環境(OS, .NET のバージョンなど)を書けませんか?
juam

2018/02/09 02:18

すみません、情報追加しました。まだ不足などありましたらご指摘ください。
guest

回答3

0

すでに終わっていて動きも問題ないと思いますが、ArrayListを使ったものが挙げられていて気になりました(2004年の記事なので仕方ないのですが)。

今回の場合チェック済みが一つでも見つかればそれ以上列挙する必要はないので、ここにあるような列挙がいいでしょう。
https://qiita.com/whitebell/items/79fd1c25a3956ed72a63

投稿2018/02/09 03:30

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/02/09 03:58

> ArrayListを使ったものが挙げられていて気になりました ご指摘の通りです。質問者さんがこの回答をご覧になっていることを期待します。
guest

0

ベストアンサー

Controls プロパティを使って Panel 内のすべてのコントロールを取得して、取得したコントロール全てを is 演算子で CheckBox か否かを調べて、CheckBox であればそのコントロールを CheckBox にキャストして「CheckBoxのCheckedプロパティにアクセスする」ということではいかがですか?

Windowsフォーム上のすべてのコントロールを列挙するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/224controls/controls.html

投稿2018/02/09 02:36

編集2018/02/09 02:38
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

juam

2018/02/09 02:54

ご回答ありがとうございます。 こちらの方法で実現可能でしたのでベストアンサーにさせて頂きました。
guest

0

未検証です。

A.Controls.OfType<CheckBox>().Any(a => a.Checked)

投稿2018/02/09 02:23

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

juam

2018/02/09 02:53

ご回答ありがとうございます。 参考にさせて頂きました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問