.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 件のコメント:
コメントを投稿