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

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

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

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

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

2回答

823閲覧

コントロールの制御について

ShouOkada

総合スコア46

C#

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

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2018/09/04 00:43

コントロールが30個ほどあり条件によって活性非活性を変えたいのですが、下記の方法だと冗長な気がします。
他にいい方法はないでしょうか?(分岐は10通りほどあります)

switch(Param) { case 値1: ControlA.Enabled=False; ControlB.Enabled=True; ControlC.Enabled=True; ControlD.Enabled=False; ControlE.Enabled=False; ・ ・ ・ break; case 値2: ControlA.Enabled=True; ControlB.Enabled=False; ControlC.Enabled=False; ControlD.Enabled=False; ControlE.Enabled=False; ・ ・ ・ break; case 値3: ControlA.Enabled=False; ControlB.Enabled=False; ControlC.Enabled=False; ControlD.Enabled=True; ControlE.Enabled=False; ・ ・ ・ break; ・ ・ ・ }

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/09/04 01:59

何を作っているのかと開発環境ぐらいは書きましょうよ。ASP.NET Web Forms かもしれないと想像してますが、あなたが質問の一行目に書いてくれれば回答者・閲覧者は余計な想像をする手間が省けます。また、開発環境(特に .NET にバージョン)の情報も重要で、それによっては答えが違ってくることが多々あるのです。そういうことをきちんと認識してください。
退会済みユーザー

退会済みユーザー

2018/09/04 02:01

あと、ControlA とかは具体的に何なのか、そもそも Enable を切り替える目的は何なのかも書いてください。質問者さんが XY 問題に陥っていると回答に意味がなくなりますので。
guest

回答2

0

現時点での質問から読み取れる状況のみで判断します。

Param の変化によってイベント(INotifyPropertyChanged.PropertyChanged など)を発生させ、各コントロールにはそのイベントに応じて活性化するかどうかを自分で判断させるのがオブジェクト指向の定石だと思います。

投稿2018/09/04 00:56

Zuishin

総合スコア28660

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

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

ShouOkada

2018/09/04 02:24

わかりましたありがとうございますm(__)m
guest

0

ベストアンサー

Panelなどのコンテナにコントロールに載せれば、そのコンテナをenable/disableすれば一括して操作はできます
また、関連あるコントロールをユーザコントロールでまとめてしまって、そいつのプロパティやらメソッドで一括して切り替えるってこともできます

まあ、10通り程度の条件で切り替えるなら、手間的にはそのテでやるのがいいとおもいますが。

投稿2018/09/04 00:52

y_waiwai

総合スコア87774

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

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

ShouOkada

2018/09/04 02:24

わかりましたありがとうございますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問