Yesterday I posted a quick update to an article I wrote back in 2007 entitled “How to make a full-screen Windows app using VB.NET”. Aside from 1 or 2 people saying “Oh man why don’t you be a man and write it using C#?” I reckon it’s a good idea to do that anyway. Thanks Scott for the suggestion. 😉 And thanks Phil for pointing me in the right direction with the DLL import stuff. 🙂
So, without any mucking about here’s the exact same complete application example only this time in C#.
Please feel to ask any questions necessary. Thanks!
Form1’s complete source:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace Play { public partial class Form1 : Form { public Form1() { InitializeComponent(); } [DllImport ("user32.dll")] private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndIntertAfter, int X, int Y, int cx, int cy, int uFlags); [DllImport("user32.dll")] private static extern int GetSystemMetrics(int Which); private const int SM_CXSCREEN = 0; private const int SM_CYSCREEN = 1; private IntPtr HWND_TOP = IntPtr.Zero; private const int SWP_SHOWWINDOW = 64; public int ScreenX { get { return GetSystemMetrics(SM_CXSCREEN); } } public int ScreenY { get { return GetSystemMetrics(SM_CYSCREEN); } } private void FullScreen() { this.WindowState = FormWindowState.Maximized; this.FormBorderStyle = FormBorderStyle.None; this.TopMost = true; SetWindowPos(this.Handle, HWND_TOP, 0, 0, ScreenX, ScreenY, SWP_SHOWWINDOW); } private void Restore() { this.WindowState = FormWindowState.Normal; this.FormBorderStyle = FormBorderStyle.SizableToolWindow; this.TopMost = false; } private void button1_Click(object sender, EventArgs e) { FullScreen(); } private void cmdRestore_Click(object sender, EventArgs e) { Restore(); } private void cmdExit_Click(object sender, EventArgs e) { Application.Exit(); } } }