簡體   English   中英

C#事件,用於更改Winform中的其他字段

[英]C# Event for changing other fields in Winform

我在我的應用程序中創建動態表單。 我正在使用DevExpress控件,例如:

            NumericUpDown controlNumUpDown = null;
            DateEdit controlDateEdit = null;
            TextEdit controlTextEdit = null;
            LookUpEdit controlComboBox = null;
            SimpleButton controlButton = null;
            MemoEdit controlMemo = null;
            GridControl controlGrid = null;
            CheckBox controlCheckBox = null;
            CheckedListBoxControl controlCheckedListBoxControl = null;
            RadioGroup controlRadioGroup = null;
            LabelControl controlStaticText = null;

現在,每個控制值都可以依賴於另一個值-字段是否可見,是否啟用。

假設我們有日期編輯(fieldId = 48)和LookUpEdit(combobox)。

現在,Combobox已將動態列表定義為SQL查詢,例如:

Select * from indexes where inserted_date=Field.48

當另一個控件中的日期更改時,組合框中的項目列表應更新。 文本編輯器也是如此,如果Field.48將是TextEdit,則它應該以相同的方式工作,代碼中給出的其他類型的字段也是如此。

請注意,這只是一個例子,正如我提到的,每個控件都可以依賴另一個控件,如果用戶定義不好,它們甚至可以陷入無限循環(我不在乎),就像一個字段可以依賴其他100個字段一樣。

所以問題是,什么活動最適合呢? 到目前為止,我已經使用了每個控件的“離開事件”,但是,如果控件未啟用或不可見,它將無法正常工作。

有時需要隱藏某些字段,例如amountOfDollars(NumericEdit),但是其他字段(如Checkbox)(如果選中,則文檔很重要)可能仍依賴於隱藏字段:amountOfDollars。

有什么建議么? (歡迎所有答案,可能無法通過事件解決...)

您嘗試做的不是一個新概念。 您正在嘗試創建一個可觀察屬性的系統-這是滿足您需求的正確方法和設計模式。

谷歌周圍,也可以在這里看看: https : //codereview.stackexchange.com/questions/132577/reactive-properties-for-easy-property-binding

基本思想是不對事件本身做出反應,而是對特定控件的屬性設置器更改做出反應。 許多第三方組件公開OnChange類型的事件,以供您攔截特定的屬性更改-其他組件則使您可以覆蓋屬性設置器的行為。 有時您需要將第三方控件分類,並連接自己的處理程序。

您的問題非常廣泛,但是即使引用的鏈接不能完全滿足您的需求,上述內容也可以幫助您朝正確的方向發展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM