एक परीक्षण और सरल समाधान
मैं एसओ और कुछ अन्य साइटों में इस प्रश्न का उत्तर ढूंढ रहा हूं, लेकिन एक ने मुझे एक उत्तर दिया था जो मेरे लिए बहुत जटिल था और कुछ अन्य उत्तर बस सही ढंग से काम नहीं करते हैं, इसलिए बहुत सारे कोड परीक्षण के बाद मैंने इस पहेली को हल किया।
नोट: मैं उपयोग कर रहा हूँ विंडोज 8 और मेरा टास्कबार ऑटो-हाईड मोड पर नहीं है।
मैंने पाया कि किसी भी संशोधन को करने से पहले WindowState को नॉर्मल पर सेट करना, कवर किए गए टास्कबार के साथ त्रुटि को रोक देगा।
कोड
मैंने इस वर्ग को बनाया जिसमें दो विधियाँ हैं, पहला "फुल स्क्रीन मोड" में प्रवेश करता है और दूसरा "फुल स्क्रीन मोड" छोड़ता है। तो आपको बस इस वर्ग का एक ऑब्जेक्ट बनाने और फॉर्म को पास करने की ज़रूरत है जिसे आप एंटरफ़ुलस्क्रीनस्क्रीन मोड या लीफ़फ़ुलस्क्रीन मोड में एक तर्क के रूप में पूर्ण स्क्रीन सेट करना चाहते हैं:
class FullScreen
{
public void EnterFullScreenMode(Form targetForm)
{
targetForm.WindowState = FormWindowState.Normal;
targetForm.FormBorderStyle = FormBorderStyle.None;
targetForm.WindowState = FormWindowState.Maximized;
}
public void LeaveFullScreenMode(Form targetForm)
{
targetForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
targetForm.WindowState = FormWindowState.Normal;
}
}
उपयोग उदाहरण
private void fullScreenToolStripMenuItem_Click(object sender, EventArgs e)
{
FullScreen fullScreen = new FullScreen();
if (fullScreenMode == FullScreenMode.No) // FullScreenMode is an enum
{
fullScreen.EnterFullScreenMode(this);
fullScreenMode = FullScreenMode.Yes;
}
else
{
fullScreen.LeaveFullScreenMode(this);
fullScreenMode = FullScreenMode.No;
}
}
मैंने एक ही सवाल पर यह जवाब दिया है कि मुझे यकीन नहीं है कि यह डुप्लिकेट है या नहीं। (अन्य प्रश्न से लिंक: टास्कबार के शीर्ष पर पूर्ण स्क्रीन में विंडोज फॉर्म कैसे प्रदर्शित करें? )