होवर करता है आप सी # विनफॉर्म नियंत्रण कैसे बना सकते हैं जो इसके क्षेत्र की सीमाओं से बाहर हो जाता है? ड्रॉप डाउन बॉक्स जैसे। जैसे कि आपके पास एक छोटे आकार के पैनल में ड्रॉपडाउनबॉक्स था।सी # विनफॉर्म नियंत्रण कैसे बनाएं जो
उत्तर
मैंने हाल ही में कुछ ऐसा ही किया, और मैंने एक सूची बॉक्स का उपयोग किया। एक सूची बॉक्स के बारे में अच्छा सोचें, यह है कि आप इसे कहीं भी प्रदर्शित कर सकते हैं, यहां तक कि अपने नियंत्रण की सीमाओं से भी। इस तरह, जब आप एक बटन क्लिक या जो भी हो, के माध्यम से पता लगाते हैं, तो आपको ड्रॉपडाउन को प्रदर्शित करने की आवश्यकता होती है, बस सूची बॉक्स को पॉप्युलेट करें और इसे कहीं भी प्रदर्शित करें। मैं यहाँ से विचार आया:
http://msdn.microsoft.com/en-us/library/aa480727.aspx
वे छानने के साथ एक कस्टम DataGridView निर्माण करने के लिए कैसे, और फिल्टर मूल्यों को प्रदर्शित करने, वे हेडर सेल के तहत एक ListBox जगह दिखाते हैं।
विंडोज फॉर्म उस तरह की विंडोज़ का समर्थन नहीं करता है, यह डिजाइनर के साथ मूल रूप से असंगत है। शुरू करने के लिए यहां कुछ कोड दिया गया है। आप डिजाइनर में इस नियंत्रण का उपयोग नहीं कर सकते हैं, इसे रन-टाइम पर बनाया जाना चाहिए। आपको अपने निपटान() विधि को स्वयं भी कॉल करना होगा।
using System;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
public class MyListBox : ListBox {
private Control mParent;
private Point mPos;
private bool mInitialized;
public MyListBox(Control parent) {
mParent = parent;
mInitialized = true;
this.SetTopLevel(true);
parent.LocationChanged += new EventHandler(parent_LocationChanged);
mPos = mParent.Location;
}
public new Point Location {
get { return mParent.PointToClient(this.Location); }
set {
Point zero = mParent.PointToScreen(Point.Empty);
base.Location = new Point(zero.X + value.X, zero.Y + value.Y);
}
}
protected override Size DefaultSize {
get {
return mInitialized ? base.DefaultSize : Size.Empty;
}
}
protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) {
if (this.mInitialized)
base.SetBoundsCore(x, y, width, height, specified);
}
void parent_LocationChanged(object sender, EventArgs e) {
base.Location = new Point(base.Left + mParent.Left - mPos.X, base.Top + mParent.Top - mPos.Y);
mPos = mParent.Location;
}
protected override CreateParams CreateParams {
get {
CreateParams cp = base.CreateParams;
if (mParent != null && !DesignMode) {
cp.Style = (int)(((long)cp.Style & 0xffff) | 0x90200000);
cp.Parent = mParent.Handle;
Point pos = mParent.PointToScreen(Point.Empty);
cp.X = pos.X;
cp.Y = pos.Y;
cp.Width = base.DefaultSize.Width;
cp.Height = base.DefaultSize.Height;
}
return cp;
}
}
}
यहाँ एक अच्छा लेख है:
http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/article.asp
यह एक वर्ग है जो इस होने का मुश्किल पहलुओं में से कुछ सही ढंग से इस तरह के आवेदन खिड़की शीर्षक पट्टी को सक्रिय रखने के रूप में काम करने के लिए, संभालती है , Alt-Tab को संभालने और माउस क्लिक के साथ रद्द करना।
- 1. क्लोन विनफॉर्म नियंत्रण
- 2. क्या यह एक नियंत्रण है? (सी # विनफॉर्म)
- 3. सी # विनफॉर्म नियंत्रण पर डब्ल्यूपीएफ पारदर्शिता
- 4. कस्टम/उपयोगकर्ता नियंत्रण (विनफॉर्म)
- 5. सी # विनफॉर्म: कुशलतापूर्वक कई नियंत्रण प्रदर्शित करना
- 6. सी # विनफॉर्म समान रूप से 3 नियंत्रण
- 7. विनफॉर्म उपयोगकर्ता नियंत्रण कस्टम घटनाओं
- 8. विनफॉर्म पर नियंत्रण का निपटान
- 9. सी #: विनफॉर्म
- 10. एक्सप्लोरर-जैसे फ़ोल्डर ब्राउज़र नियंत्रण कैसे बनाएं?
- 11. विनफॉर्म
- 12. विनफॉर्म सी # - टैबपेज
- 13. टाइमलाइन नियंत्रण कैसे बनाएं?
- 14. विनफॉर्म
- 15. सी # विनफॉर्म जांच अगर नियंत्रण भौतिक दिखाई दे रहा है
- 16. सी # विनफॉर्म प्रोग्राम
- 17. प्रिंट चालान सी # विनफॉर्म
- 18. विनफॉर्म
- 19. डेटीमपिकर सी # विनफॉर्म चेक/अनचेक इवेंट
- 20. सी # जेनिक्स और विनफॉर्म
- 21. विनफॉर्म पिक्चरबॉक्स छवि खाली सी #
- 22. रनटाइम पर नियंत्रण कैसे बनाएं?
- 23. विनफॉर्म सी # आउटलुक स्टाइल कैलेंडर
- 24. सी #: दो विनफॉर्म नियंत्रणों की स्थिति को कैसे स्वैप करें
- 25. फॉर्म नियंत्रण जो ज़ूम, पैन और पीओआई
- 26. सी # विनफॉर्म प्रोग्रेसबार और पृष्ठभूमिवर्कर
- 27. नियंत्रण पारदर्शी बनाएं
- 28. एनईटी विनफॉर्म प्रतिपादन कैसे करें
- 29. ड्रॉपडाउनलिस्ट नियंत्रण कैसे बनाएं बोल्ड एएसपी.नेट
- 30. टेक्स्टबॉक्स नियंत्रण में हाइपरलिंक बनाएं
इसे आजमाया और यह बहुत अच्छा काम करता है, लेकिन किसी भी तरह से यह DrawItem और SelectedIndexChanged जैसे ListBox ईवेंट नहीं बढ़ाता है। क्या आपको कोई विचार है क्यों? –
मेरी प्रतिक्रिया यहां देखें: http://stackoverflow.com/questions/398176/listbox-with-overriden-createparams-doesnt-raise-item-events#398694 –