ExtendedNumericUpDown.h
#pragma once
namespace Core
{
/// 拡張アップダウン コントロール
public ref class ExtendedNumericUpDown : public System::Windows::Forms::NumericUpDown
{
// Attribute ===========================================================
private:
System::EventHandler^ m_valueChangedEventHandler; ///< 値変更のイベントハンドラ
// Property ------------------------------------------------------------
public:
/// 値
property double Number
{
double get()
{
return System::Decimal::ToDouble( this->Value );
}
void set( double value )
{
// 値の設定時にイベントから呼び出されないように、それを削除する
this->ValueChanged -= m_valueChangedEventHandler;
// キャストして値を設定する
this->Value = System::Decimal( value );
// ... 削除したイベントに 再び登録する
this->ValueChanged += m_valueChangedEventHandler;
}
}
/// 値変更のイベントハンドラ
property System::EventHandler^ ValueChangedEventHandler
{
void set( System::EventHandler^ value )
{
m_valueChangedEventHandler = value;
// 値変更イベントに追加する
this->ValueChanged += value;
}
}
};
/// @note
/// アップダウン コントロールに以下の項目を拡張している。
/// 1. Decimalではなく double型による値の設定
/// 2. 変更イベントを伴わない 値の変更
}