2010-04-30 17 views
9

मैं एक बहुत ही बुनियादी मानचित्र संपादक बना रहा हूं। मैं इसके माध्यम से आधे रास्ते में हूं और एक समस्या जिसे मैं हिट करता हूं वह है कि किसी ऑब्जेक्ट को कैसे हटाया जाए।मैं एक पिक्चरबॉक्स कैसे चुन सकता हूं?

मैं डिलीट दबा देना चाहता हूं लेकिन चित्र बॉक्स के लिए कोई कीडाउन ईवेंट नहीं प्रतीत होता है और ऐसा लगता है कि मेरे पास केवल मेरे सूची बॉक्स पर होगा।

मेरे संपादक में किसी ऑब्जेक्ट को हटाने का सबसे अच्छा समाधान क्या है?

+0

चुड़ैल भाषा में, क्या आप इसे करना चाहते हैं? – Werewolve

+0

@were: मुझे लगता है कि आप सी # या वीबी.NET मान सकते हैं। पूर्व अधिक आम लगता है। * कोड * का अनुवाद करना समस्या का सबसे कम होना चाहिए, यद्यपि। – Joey

+0

सी # और मैं बस ठीक से vb पढ़ सकते हैं। हो सकता है कि मैं ऑब्जेक्ट ऑफस्क्रीन को डिलीट समाधान खींचने पर विचार करूंगा। बुरा करने के लिए मैंने तुरंत इसके बारे में नहीं सोचा था। –

उत्तर

17

आप PictureBox tabbing क्रम में भाग लेने के चाहता हूँ और पता चलता है कि यह ध्यान केंद्रित किया। इसमें मामूली शल्य चिकित्सा होती है। अपनी परियोजना में एक नई कक्षा जोड़ें और नीचे दिखाए गए कोड पेस्ट करें। संकलित करें। टूलबॉक्स के शीर्ष से अपने फॉर्म पर नया नियंत्रण ड्रॉप करें। KeyDown घटना कार्यान्वित करें।

using System; 
using System.Drawing; 
using System.Windows.Forms; 

class SelectablePictureBox : PictureBox { 
    public SelectablePictureBox() { 
    this.SetStyle(ControlStyles.Selectable, true); 
    this.TabStop = true; 
    } 
    protected override void OnMouseDown(MouseEventArgs e) { 
    this.Focus(); 
    base.OnMouseDown(e); 
    } 
    protected override void OnEnter(EventArgs e) { 
    this.Invalidate(); 
    base.OnEnter(e); 
    } 
    protected override void OnLeave(EventArgs e) { 
    this.Invalidate(); 
    base.OnLeave(e); 
    } 
    protected override void OnPaint(PaintEventArgs pe) { 
    base.OnPaint(pe); 
    if (this.Focused) { 
     var rc = this.ClientRectangle; 
     rc.Inflate(-2, -2); 
     ControlPaint.DrawFocusRectangle(pe.Graphics, rc); 
    } 
    } 
} 
+0

धन्यवाद, यह अच्छी तरह से काम करता है: डी –

+0

@ हंस पासेंट- क्या यह वास्तव में विंडोज़ फॉर्म पर टैबबिंग ऑर्डर में भाग लेता है? क्योंकि, जब टैब को पिछले नियंत्रण से दबाया जाता है तो उसे फोकस नहीं मिलता है या CTRL + TAB अगले नियंत्रण से दबाया जाता है। इस पर आपकी धारणा क्या है? सादर। – priyamtheone

+0

हां, यह इस कोड का बिंदु था। मैंने बस इसे फिर से चेक किया, एक मां की तरह टैब। वास्तव में * इस नए नियंत्रण के साथ * चित्र बॉक्स को प्रतिस्थापित करने के लिए मत भूलना। –

1

मुझे लगता है कि यह सबसे अच्छा methode है:

http://felix.pastebin.com/Q0YbMt22

+0

मैं देखता हूं कि आप इसके साथ कहां जा रहे हैं। –

+0

आप पिक्चरबॉक्स के क्लिक इवेंट हैंडलर में एक प्रतिनिधि विधि में उसी प्रभाव का उपयोग कर सकते हैं। –

संबंधित मुद्दे