Test edilmiş ve basit bir çözüm
SO'da ve diğer bazı sitelerde bu soruya bir cevap arıyordum, ancak biri cevap verdiğim için çok karmaşıktı ve diğerleri cevaplar doğru çalışmıyor, bu yüzden çok sayıda kod testinden sonra bu bulmacayı çözdüm.
Not: Windows 8 kullanıyorum ve görev çubuğum otomatik gizleme modunda değil.
Herhangi bir değişiklik yapmadan önce WindowState'i Normal olarak ayarlamanın, kapsanmayan görev çubuğundaki hatayı durduracağını keşfettim.
Kod
İki yöntemi olan bu sınıfı oluşturdum, birincisi "tam ekran moduna" giriyor ve ikincisi "tam ekran modunu" terk ediyor. Bu nedenle, bu sınıfın bir nesnesini oluşturmanız ve tam ekranı bağımsız değişken olarak ayarlamak istediğiniz Formu EnterFullScreenMode yöntemine veya LeaveFullScreenMode yöntemine iletmeniz yeterlidir:
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;
}
}
Kullanım örneği
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;
}
}
Aynı yanıtı, bunun bir kopyası olup olmadığından emin olmadığım başka bir soruya da verdim. (Diğer soruya bağlantı: Bir Windows Formu görev çubuğunun üstünde tam ekranda nasıl görüntülenir? )