2011-12-07 17 views
5

पर प्रपत्र को ले जाएं, मैं यह निर्धारित करने की कोशिश कर रहा हूं कि निर्दिष्ट सिस्टम को कैसे स्थानांतरित करें। Windows.Forms.Form प्राथमिक स्क्रीन से दूसरे पर। मेरे पास उपलब्ध स्क्रीन की सूची के साथ कॉम्बोबॉक्स है जहां उपयोगकर्ता अपनी पसंद की स्क्रीन का चयन करता है और मेरा एप्लिकेशन उस स्क्रीन पर अपनी खिड़कियों में से एक को स्थानांतरित करना चाहता है।निर्दिष्ट स्क्रीन

मेरे पास मेरे लैपटॉप पर केवल एक स्क्रीन है और कोई बाहरी मॉनीटर नहीं है, इसलिए मेरे कंप्यूटर पर कॉम्बोबॉक्स केवल एक विकल्प प्रदान करता है। मुझे लगता है कि वांछित खिड़की को कम करना, चयनित स्क्रीन के बाउंड के केंद्र में इसके बाएं कोने को ले जाना और अधिकतम करना नौकरी करेगा, है ना? मैं बस इसका परीक्षण नहीं कर सकता। क्या यह जाने का एक अच्छा तरीका है?

अग्रिम धन्यवाद!

+0

संभावित डुप्लिकेट: http://stackoverflow.com/questions/2561104/c-sharp-winform-show-form-in-se –

+0

आपको मॉनीटर और परीक्षण करने की आवश्यकता है। आप उस कोड का समर्थन नहीं कर सकते जिसे आपने कभी सत्यापित नहीं किया है। –

उत्तर

5

यहाँ मैं एक साधारण परीक्षण के रूप में किया था, ...

मैं इतना है कि मैं बदल सकता है ToString फोन पर क्या होता है एक सरल आवरण वर्ग जोड़ा है (मैं केवल कॉम्बो बॉक्स में सूचीबद्ध नाम देखना चाहता था)

private class ScreenObj 
{ 
    public Screen screen = null; 

    public ScreenObj(Screen scr) 
    { 
     screen = scr; 
    } 

    public override string ToString() 
    { 
     return screen.DeviceName; 
    } 
} 

प्रपत्र लोड घटना में मैं इस कहा:

foreach(Screen screen in Screen.AllScreens) 
{ 
    cboScreens.Items.Add(new ScreenObj(screen)); 
} 

और कॉम्बो बॉक्स के चयनित सूचकांक परिवर्तन घटना के लिए मैं इस किया था:

private void cboScreens_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    object o = cboScreens.SelectedItem; 
    if(null == o) 
     return; 

    ScreenObj scrObj = o as ScreenObj; 
    if(null == scrObj) 
     return; 

    Point p = new Point(); 

    p.X = scrObj.screen.WorkingArea.Left; 
    p.Y = scrObj.screen.WorkingArea.Top; 

    this.Location = p; 
} 

यह फ़ॉर्म मेरी प्रत्येक स्क्रीन के ऊपरी बाएं कोने में स्थानांतरित कर दिया।

+1

धन्यवाद। मुझे ठीक इसी की आवश्यकता थी। –

+0

@ pennyrave, क्या यह कोड काम करता है अगर मैं hdmi पोर्ट का उपयोग करता हूं? –

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