.NET TIPS:Windowsアプリケーションをフルスクリーンで表示するには? - @IT
基本的にこのページのコピペだが、フルスクリーン/ウィンドウを切り替えるとFormサイズが変化してしまう不具合の部分だけ、修正してある。
コンストラクタとメソッド3個しかないので、説明しなくても使えるはず。内容もそんなに大変じゃないはず。動作が知りたいなら上記リンクを参照。
public partial class Form1 : Form { readonly Full_screen_controller full_screen; public Form1() { InitializeComponent(); full_screen = new Full_screen_controller(this); } private void button1_Click(Object sender, EventArgs e) { full_screen.toggle_screen_mode(); } private void button2_Click(Object sender, EventArgs e) { full_screen.to_full_screen(); } private void button3_Click(Object sender, EventArgs e) { full_screen.to_window(); } } class Full_screen_controller { private readonly Form form = null; public bool is_full_screen_mode { get; private set; } = false; private FormWindowState previous_form_state; private FormBorderStyle previous_form_style; private Size previous_form_size; public Full_screen_controller(Form form) { this.form = form; } public void to_full_screen() { if (!is_full_screen_mode) { is_full_screen_mode = true; previous_form_state = form.WindowState; previous_form_style = form.FormBorderStyle; if (form.WindowState == FormWindowState.Maximized) { form.WindowState = FormWindowState.Normal; } previous_form_size = form.Size; form.FormBorderStyle = FormBorderStyle.None; form.WindowState = FormWindowState.Maximized; } } public void to_window() { if (is_full_screen_mode) { is_full_screen_mode = false; if (previous_form_state == FormWindowState.Maximized) { form.WindowState = FormWindowState.Normal; } else { form.Size = previous_form_size; } form.FormBorderStyle = previous_form_style; form.WindowState = previous_form_state; } } public void toggle_screen_mode() { if (!is_full_screen_mode) { to_full_screen(); } else { to_window(); } } }
そういえば、いちおうJSF++に則った雰囲気の書き方?だけど、JSF++だと大文字と小文字で区別しちゃいけないんだよな。ということで、「型名の最初の1文字は常に大文字」+「インスタンスは常に小文字」で区別するのはルール違反のはず。もっとも、基本的にクラス名とインスタンス名を間違えても、大抵はコンパイラでエラーになるので、バグにつながる危険性は少なそう。
このあたりは実際の使用例を見てみないとなんとも。とはいえF-35のソースコードってオープンソースになってる部分とかあるんだろうか?機密的に言えば、単なる算術ライブラリとかは全く機密には当たらないけど、各国の税金で作ったものを(仮想敵国も含めた)全世界で共有する、というのは無いだろうなぁ。
0 件のコメント:
コメントを投稿