मैं कुछ घटनाक्रम मैं अपने दम पर बनाया है और उन्हें कैसे को बढ़ाने के लिए जब मैं चाहता हूँ पर सोच रहा था।सी # WinForms में बढ़ाएं कस्टम घटनाओं
शायद अपने आवेदन डिजाइन भी में गड़बड़ है, यदि आप चाहें कि पर एक नज़र हो सकता है।
यह संरचना
ProgramContext
- Form MainWindow
+ Control TextBox
+ Control Button
+ ...
इस मामले में है MainWindow.TextBox
कुछ जानकारी जो रनटाइम के दौरान अक्सर अद्यतन किया जाता है रखती है। तो, मैं किसी भी तरह यह अपने आप को ताज़ा करने के जब मैं
मैं एक EventHandler
अपने Validating
-Event को hooking की कोशिश की (इसलिए यह डेटाबेस, जहां यह संग्रह किया गया है से अपने डेटा को फिर से लोड कर सकते हैं) करना चाहते हैं की जरूरत है, लेकिन यह नहीं मालूम था चाल करने के लिए।
तो, मूल रूप से मैं एक विधि है कि ProgramContext
DataTable table = _adapter.GetData();
foreach (DataRow row in table.Rows)
{
MainWindow.TextBox.Text += table.Text.ToString();
}
कि जब भी किसी अन्य विधि (कि table
में नया डेटा लिखते हैं) निष्पादित किया जाता है किया जाना चाहिए में डेटा को पुनः लोड करता है।
कोई भी विचार?
अपने उदाहरण में, बजाय एक नया प्रतिनिधि घोषित करने के, यह सिर्फ 'सार्वजनिक समारोह eventhandler में के रूप में सामान्य उपयोग करने के लिए' EventHandler' साफ हो जाएगा MyEvent' –
मैं भी 'TextChanged' को hooking की कोशिश की है, लेकिन जो एक अनंत लूप में समाप्त होगा, क्योंकि मैं EventHandler –
के भीतर टेक्स्ट को बदलना चाहता हूं आप हैंडलर के भीतर टेक्स्ट बदल सकते हैं लेकिन आपको विधि की अवधि के लिए ईवेंट को नीचे ले जाने की आवश्यकता है।आप इसे इस तरह से कर सकते हैं: कॉल करें 'this.TextChanged - = SomeClassName_TextChanged' इस कॉलर के लिए ईवेंट को अक्षम करने के लिए, विधि में कुछ चीज़ें करें और फिर इसे 'पुनः दबाएं। = SomeClassName_TextChanged' ईवेंट को फिर से सक्रिय करने के लिए कॉल करें। – Nebula