[C#] クラスメンバをぐるんぐるんしたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
オカピーα
記事: 120
登録日時: 8年前

[C#] クラスメンバをぐるんぐるんしたい

#1

投稿記事 by オカピーα » 7年前

お久しぶりです、お世話になっています。
先日作成した画面では、入力する項目がいっぱいあります。
それで、そこに入力された内容をクラスに落とさなければならないのですが

コード:

class1.name = name.Text;
class1.pass = pass.Text;
class1.comment = comment.Text;
といちいちやっているのはプログラマーとして恥ずべきことだと気づきました。
なんとかループでぐるんぐるんとお洒落に処理したいです。
コントロールとクラスメンバを連動させるいい方法を教えて下さい。
お願いします。

IDE : Visual C# 2008 Express Edition
OS : Windows XP
C,C++,C#,これらを極めることを「3C政策」と言う

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: [C#] クラスメンバをぐるんぐるんしたい

#2

投稿記事 by softya(ソフト屋) » 7年前

入力項目側は配列に出来ないんでしたっけ?
同じコントロールなら出来そうな気がするんですが。

※ C#に詳しくないので断言出来ません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: [C#] クラスメンバをぐるんぐるんしたい

#3

投稿記事 by YuO » 7年前

データバインドしたい,ということでしょうか。

class1のname/pass/commentがプロパティなら,コントロール→モデルプロパティ方向のバインドは仕掛け無しに可能です。
逆方向は,INotifyPropertyChangedが必要になります。
また,検証系 (WinFormsにおけるValidating/Validatedなど。WPFにはイベント無し?) を使う場合にはIDataErrorInfoが必要になります。
# C#で公開メンバーがPascal Caseでないのは違和感……。

ちなみに,Visual Basic 6までのコントロール配列のようなものは,.NET Frameworkには存在しません。
単純な,コントロールの配列は当然作成できるので,InitializeComponentの後にでも初期化コードを書いておけば,配列として利用可能です。
ただ,純粋に同一の意味合いを持つコントロールが複数ある,ということはあまりないと思うので,コントロール配列が本当に解なのかは疑問です。
オフトピック
  • イベントハンドラの共有ならコントロール配列にしなくてもできる
  • 特定のプロパティを一気に変えることはデータバインドで可能
  • 複数のコントロールを繰り返したいならば,ユーザーコントロールをFlowLayoutPanelに載せるなり,DataRepeater (VB Power Packs) 使うなりすればよく,前者のみ配列化が必要
と,純粋にコントロール配列が必要になる状況は少ないです。

オカピーα
記事: 120
登録日時: 8年前

Re: [C#] クラスメンバをぐるんぐるんしたい

#4

投稿記事 by オカピーα » 7年前

ありがとうございます!
C,C++,C#,これらを極めることを「3C政策」と言う

閉鎖

“C言語何でも質問掲示板” へ戻る