- PR -

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

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-31 16:15
引用:

囚人さんの書き込み (2006-01-31 16:03) より:

ASP.NET の Validator コントロールみたいな事をしたいとみた。


それならば、動的に Label を作成して、になりませんか?

引用:

めちゃ適当ですが、こんなイメージ?


うーん。

コード:

    protected override void OnLeave(System.EventArgs e) {
        if (int.TryParse(this.Text ... ) {
            this.PairLabel.Text = (int.Parse(this.Text) + 100).ToString();
        } else {
            // どうする?
        }
    }


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-01-31 16:26
引用:

それならば、動的に Label を作成して、になりませんか?


いや、そうじゃないです。言葉足らず過ぎました。

BaseValidator.ControlToValidate プロパティみたいにペアになるコントロールをプロパティで設定したいかと。

コード:
protected override void OnLeave(System.EventArgs e) {
    if (int.TryParse(this.Text ... ) {
    	this.PartTextBox.Text = (int.Parse(this.Text) + 100).ToString();
    } else {
    	// コントロールの仕様による?
    	// PartTextBox が null なら例外スロー?
    	// PartTextBox が null なら何もしない?
    }
}



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

囚人さんの書き込み (2006-01-31 16:26) より:

いや、そうじゃないです。言葉足らず過ぎました。
BaseValidator.ControlToValidate プロパティみたいにペアになるコントロールをプロパティで設定したいかと。


あ、了解です。
ただ + 100 なのが Validator 的に少し微妙ですが。

引用:

// PartTextBox が null なら何もしない?


何もしないが正解なんでしょうね。
設定されていないものも当然出てくるでしょうから。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2006-01-31 16:35
こんなんでどうでしょうか。
実際には、主従の関係とかもあると思いますから、色々工夫してみて下さい。

コード:

public class TextBoxEx:System.Windows.Forms.TextBox
{
public TextBoxEx():base()
{
this.TextChanged += new EventHandler(TextBoxEx_TextChanged);
}

private TextBoxEx _RelatedTextBox = null;

// 関連テキストボックス
public TextBoxEx RelatedTextBox
{
get
{
return _RelatedTextBox;
}
set
{
_RelatedTextBox = value;
}
}

// テキストが変更されたら関連テキストボックスにコピー
private void TextBoxEx_TextChanged(object sender, EventArgs e)
{
if (this.RelatedTextBox!= null && !this.DesignMode)
{
this.RelatedTextBox.Text = this.Text;
}
}
}



【追記】
って、手間取ってる間に、既に囚人さんから正解が出てた…orz


[ メッセージ編集済み 編集者: きくちゃん 編集日時 2006-01-31 16:42 ]
元イノキイズム
常連さん
会議室デビュー日: 2005/12/05
投稿数: 24
投稿日時: 2006-01-31 18:55
イノキイズムです。
囚人様、じゃんぬねっと様、きくちゃん様ご回答ありがとうございます。

引用:

きくちゃんさんの書き込み (2006-01-31 16:35) より:
実際には、主従の関係とかもあると思いますから、色々工夫してみて下さい。



ご回答頂きましたことを参考に色々と試そうと思います。
あまりコントロールのことがわかっていませんので、
これを機に勉強していきたいと思います。

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