2009-03-26 7 views
10

मैं कुछ हमेशा के रूप में शीर्ष रूपों को फॉर्म के रूप में बना रहा हूं और जब मैं उन्हें खोलता हूं तो मैं उन्हें खोलने के रूप में अन्य रूपों से ध्यान नहीं लेना चाहता हूं। मैं यह कैसे कर सकता हूँ?फोकस के बिना सी # में एक फॉर्म खोलना

धन्यवाद

+1

की संभावित डुप्लिकेट [फोकस चोरी के बिना एक फ़ॉर्म दिखाएं?] (Http://stackoverflow.com/questions/156046/show-a-form-without-stealing- फोकस) – Breeze

उत्तर

12
protected override bool ShowWithoutActivation 
{ 
    get 
    { 
     return true; 
    } 
} 

अवहेलना आपके प्रपत्र कोड में यह संपत्ति और यह आप के लिए चाल करना चाहिए।

+4

यह ध्यान दिया जाना चाहिए कि यदि आपके फॉर्म में शीर्षतम संपत्ति सेट की गई है, तो यह काम नहीं करेगा, इस शीर्ष ओवरराइड के साथ इस ओवरराइड का उपयोग करने के लिए आपको CreateParams को ओवरराइड करना होगा और ExStyle पर WS_EX_TOPMOST भी सेट करना होगा। –

10

मुझे एडम की & हारून की जानकारी का उपयोग करके कुछ मिनट लग गए, लेकिन अंत में मुझे यह मेरे लिए काम करने के लिए मिला। मुझे एक चीज करना था यह सुनिश्चित करना था कि फॉर्म की शीर्ष संपत्ति सबसे अधिक गलत है। यहाँ कोड मैं इस्तेमाल किया ... है

protected override bool ShowWithoutActivation { get { return true; } } 

    protected override CreateParams CreateParams 
    { 
     get 
     { 
      //make sure Top Most property on form is set to false 
      //otherwise this doesn't work 
      int WS_EX_TOPMOST = 0x00000008; 
      CreateParams cp = base.CreateParams; 
      cp.ExStyle |= WS_EX_TOPMOST; 
      return cp; 
     } 
    } 
संबंधित मुद्दे