こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フォームの値を全て取得したい(VC#)

こんばんは。
最近、VC#をやり始めたのですが、フォームの値を取得するのに
以下のような感じで、一つずつフォームの値を取得していて
とても時間がかかり困っています。
フォームにあるテキストやラジオボタンなどを
一括(for分など)で取得する方法ありましたら教えて頂きたいです。

//テキストの取得
global.駅1 = フォーム駅1.Text;
global.駅2 = フォーム駅2.Text;
global.駅3 = フォーム駅3.Text;

//コンボボックスの選択値取得
global.駅番号 = コンボボックス駅番号.SelectIndex;

投稿日時 - 2013-02-21 19:30:35

QNo.7957335

すぐに回答ほしいです

質問者が選んだベストアンサー

Windowsフォーム上のすべてのコントロールを列挙するには?
を紹介します。

参考URL:http://www.atmarkit.co.jp/fdotnet/dotnettips/224controls/controls.html

投稿日時 - 2013-02-22 10:26:16

お礼

ご回答ありがとうございます。
Controlsプロパティに登録された各コントロールを再帰的に取得できましたが、
#2さんの言うとおり、データグリッドやラジオボタンなどは再帰的に取得すると問題があり、除外したりするので、結局コーディング時間がかかってしまいました。
ただ、テキストボックスに入力された値は再帰的に取得できましたので、助かりました。
データグリッドやラジオボタンの値を取得するのは、一つずつコーディングしていこうと思います。
ありがとうございます。

投稿日時 - 2013-03-05 19:26:44

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>とても時間がかかり困っています。

コーディングに時間がかかる。ということならそういうものですからあきらめてください。
#2の方のいわれるように適用したいコントロールの配列を作っておく手もありますけど、けっきょく配列に列挙することになるのであんまり変わらないです。

投稿日時 - 2013-02-24 12:02:11

ANo.2

> とても時間がかかり困っています。
何の時間か分かりません。一括で取れたところで処理時間は体感できるほど
変わらないと思います。逆に個別で指定した方が変に検索とかするより
高速です。処理が遅いなら他に原因があるのでは?

コーディングの時間という意味なら、#1さんのご紹介通りControls プロパティ
を利用すれば良いと思いますが、コントロールの種類によって処理を分ける
ようなプログラムは書けるんでしょうか?
適用したいコントロールと適用したくないコントロールが出てきたときにも
今度は特定のコントロールを除外するコードが必要になりますし、事前に
該当のコントロールの配列を作っておくほうが便利なんじゃないかと思います。

投稿日時 - 2013-02-22 11:12:03

あなたにオススメの質問