- PR -

NumericUpDownの値変更

投稿者投稿内容
lalupin4
大ベテラン
会議室デビュー日: 2004/07/26
投稿数: 163
投稿日時: 2006-06-24 12:07
引用:
コード:
numericEditUpdate(System.Windows.Forms.NumericUpDown pNumericUpDown, double pValue)




 とりあえずその実装だと
コード:
switch(pNumericUpDown.Name) //で分岐 //平易かつ安易だけど絶対に俺はやらない
switch(pNumericUpDown.Tag) //コンストラクト時に列挙体かconst文字列を食わせて分岐 //俺はたまにやる


 仕様に依りますがベル説が最もクールなカンジがします。
コード:
numericEditUpdate(NumericUpdown nudNumericUpDown, EventHandler evhNumericUpDown, double pValue)
{
    ...


(超どうでもいい話;テメーらハンガリアン記法についてどう思う?)
sou
ベテラン
会議室デビュー日: 2002/09/25
投稿数: 56
投稿日時: 2006-06-25 12:04
NumericUpDownを継承したコントロールで行う。

新しくValue2プロパティを作成し、コード上からはValue2プロパティを通して、Valueプロパティの設定を行う。こうすると、ValueChangedイベントは発生しません。

コード:
	public class VNumericUpDown:System.Windows.Forms.NumericUpDown
	{
		public VNumericUpDown()
		{
		}

		private bool valueChangedEventFlag = true;

		public decimal Value2
		{
			get
			{
				return base.Value;
			}
			set
			{
				this.valueChangedEventFlag = false;
				base.Value = value;
				this.valueChangedEventFlag = true;
			}
		}

		protected override void OnValueChanged(EventArgs e)
		{
			if(this.valueChangedEventFlag)
			{
				base.OnValueChanged(e);
			}
		}
	}

ユウジ
会議室デビュー日: 2003/03/23
投稿数: 7
投稿日時: 2006-06-26 16:10
返信が遅れました。

べるさんとsouさんに教えて頂きましたものを試し、
souさんのやり方で回避する事に致しました。

書き込みありがとうございました。

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