- PR -

ユーザコントロールのプロパティでコントロールの関連付けを行う。

投稿者投稿内容
元イノキイズム
常連さん
会議室デビュー日: 2005/12/05
投稿数: 24
投稿日時: 2006-01-31 11:08
イノキイズムと申します。

現在、VS2005・C#にてWindows アプリケーションを作成しております。

■前準備
1.整数入力用のユーザコントロールを作成。
2.上記のユーザコントロールを2つ(Text1、Text2)貼り付ける。

■行いたいこと
Text1に適当な値(整数値)を入力して、フォーカスがText1を抜けた時に
Text2に設定値(例:99999など)をセットする。

これをプロパティで、関連付けるコントロールを指定し
実現したいのですが可能なのでしょうか?


ご存知の方、ご教授願います。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-01-31 11:16
可能だと思います。
どこまで自分で出来るかやってみたらどうでしょう?
詰まったら、都度アドバイスしてくれる人が出てきてくれるかもしれませんね。
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-31 11:54
整数入力用とのことで、どの時点で整数以外を弾くかで実装は変わります。
System.Windows.Forms.TextBox を継承したコントロールで良いでしょう。
設定値はプロパティで公開しておけば OK ですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
元イノキイズム
常連さん
会議室デビュー日: 2005/12/05
投稿数: 24
投稿日時: 2006-01-31 15:23
イノキイズムです。
囚人様、じゃんぬねっと様ご回答ありがとうございました。

引用:

じゃんぬねっとさんの書き込み (2006-01-31 11:54) より:
整数入力用とのことで、どの時点で整数以外を弾くかで実装は変わります。
System.Windows.Forms.TextBox を継承したコントロールで良いでしょう。
設定値はプロパティで公開しておけば OK ですね。


ユーザコントロールはSystem.Windows.Forms.TextBoxを継承して作成しております。

設定値なのですが、例えば設定値が固定値ではなく、
Text1の値(整数値)+100の値をText2にセットする
みたいなことはプロパティの設定で可能でしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-31 15:43
引用:

イノキイズムさんの書き込み (2006-01-31 15:23) より:

ユーザコントロールはSystem.Windows.Forms.TextBoxを継承して作成しております。


広義では意味が変わりますので、カスタム コントロールまたは継承コントロールと呼んだ方が良さそうです。

引用:

設定値なのですが、例えば設定値が固定値ではなく、
Text1の値(整数値)+100の値をText2にセットする
みたいなことはプロパティの設定で可能でしょうか?


自身の Text プロパティを int.Parse すれば OK でしょう。(その前に TryParse は必要)
ただ、Text2 ってどこの何者ですか?

コントロールは外部の世界を知りませんし、関与してはいけません。
関与したいのであれば、ユーザーコントロールとして「継承」ではなく同一コンテナとしましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
元イノキイズム
常連さん
会議室デビュー日: 2005/12/05
投稿数: 24
投稿日時: 2006-01-31 15:56
イノキイズムです。
じゃんぬねっと様ご回答ありがとうございます。

引用:

じゃんぬねっとさんの書き込み (2006-01-31 15:43) より:
引用:

イノキイズムさんの書き込み (2006-01-31 15:23) より:

ユーザコントロールはSystem.Windows.Forms.TextBoxを継承して作成しております。


広義では意味が変わりますので、カスタム コントロールまたは継承コントロールと呼んだ方が良さそうです。


ご指摘ありがとうございます。
以後気をつけます。

引用:

じゃんぬねっとさんの書き込み (2006-01-31 15:43) より:
引用:

設定値なのですが、例えば設定値が固定値ではなく、
Text1の値(整数値)+100の値をText2にセットする
みたいなことはプロパティの設定で可能でしょうか?


自身の Text プロパティを int.Parse すれば OK でしょう。(その前に TryParse は必要)
ただ、Text2 ってどこの何者ですか?

コントロールは外部の世界を知りませんし、関与してはいけません。
関与したいのであれば、ユーザーコントロールとして「継承」ではなく同一コンテナとしましょう。




アドバイス頂きました内容をもとに調べてやってみようと思います。
Text2とはTex1と同じカスタム コントロールという意味合いで記述しておりました。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-01-31 16:03
ASP.NET の Validator コントロールみたいな事をしたいとみた。

引用:

これをプロパティで、関連付けるコントロールを指定し
実現したいのですが可能なのでしょうか?



コード:
public TextBox PairTextBox
{
	get{ return _pairTextBox; }
	set{ _pairTextBox = value; }
}

protected override void OnLeave( EventArgs e )
{
	_pairTextBox.Text = Text + 100;
}



めちゃ適当ですが、こんなイメージ?
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-31 16:14
引用:

イノキイズムさんの書き込み (2006-01-31 15:56) より:

アドバイス頂きました内容をもとに調べてやってみようと思います。
Text2とはTex1と同じカスタム コントロールという意味合いで記述しておりました。


同じなのは良いですが、お互いが "ペアであること" をどうやって紐付けるんですか?
コントロールはクラスですので、自分がこの人とペアだよという情報を持つ必要があります。
それならば、ユーザーコントロールとして 2 つの TextBox を配置すべきかな、と思ったのです。

どのような機能をご所望なのかで、適切な方法は変わってきます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)