VC2005自製元件的事件問題… |
尚未結案
|
ychch0819
一般會員 發表:25 回覆:29 積分:15 註冊:2006-08-09 發送簡訊給我 |
我用VC++2005的控制項程式庫自製一個簡單的元件…當要開一個新的windowsform專案來試元件時,在Event方面遇到一些問題…(在元件的事件欄有成功看到Event的欄位)
第一個問題是如果使用者只想在程式中改變某屬性的值,但卻不想引發屬性改變的事件…自製元件的程式要怎麼更改… (目前遇到的狀況是如果使用者更改屬性的值,而沒有引發改變屬性的事件會出現Exception) 第二個問題是使用者如果在屬性欄直接更改某屬性值,則會出現"無效的屬性值"對話框,但明明都是int…(應該是有引發到屬性改變的事件) 我的自製元件部份程式如下: property int MAX { int get() { return max; } void set (int val) { if (max!=val) { max=val; OnMAXChanged(this, EventArgs::Empty); Invalidate(); } } } event EventHandler^ MAXChanged { void add (System::EventHandler ^ value){ OnMAXChanged = value; } void remove(System::EventHandler ^ value) { OnMAXChanged-=value; } } |
fPhoenix
一般會員 發表:0 回覆:20 積分:19 註冊:2005-08-11 發送簡訊給我 |
設定事件的時候我沒有加上add和remove,我記得.NET是不允許使用者自行加上這兩個函式的@@
這樣子使用上並沒有遇上你所遇到的問題, 不過我所使用的程式碼非常簡單就是了。 [code cpp] private: int m_Value; public: event EventHandler^ MyEvent; property int MyProperty { int get() { return m_Value; } void set(int value) { m_Value = value; MyEvent(this, EventArgs::Empty); Invalidate(); } } [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |