Window handling

This commit is contained in:
2017-12-08 18:09:20 +01:00
parent 5a8a5a266e
commit 36eb58c4ba
2 changed files with 60 additions and 6 deletions

View File

@@ -75,6 +75,8 @@
this.MaximizeBox = false;
this.Name = "FrmToolbox";
this.Text = "Toolbox";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmToolbox_FormClosing);
this.Resize += new System.EventHandler(this.FrmToolbox_Resize);
this.ResumeLayout(false);
}

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace VAR.Toolbox.UI
@@ -12,20 +13,71 @@ namespace VAR.Toolbox.UI
private void btnBase64_Click(object sender, EventArgs e)
{
var frmBase64 = new FrmBase64();
frmBase64.Show();
CreateWindow(typeof(FrmBase64));
}
private void btnProxyCmd_Click(object sender, EventArgs e)
{
var frmProxyCmd = new FrmProxyCmd();
frmProxyCmd.Show();
CreateWindow(typeof(FrmProxyCmd));
}
private void btnWebcam_Click(object sender, EventArgs e)
{
var frmWebcam = new FrmWebcam();
frmWebcam.Show();
CreateWindow(typeof(FrmWebcam));
}
#region Window handling
private Form CreateWindow(Type type)
{
Form frm = Activator.CreateInstance(type) as Form;
if(frm== null)
{
return null;
}
_forms.Add(frm);
frm.FormClosing += frmChild_FormClosing;
frm.Show();
return frm;
}
private List<Form> _forms = new List<Form>();
private void frmChild_FormClosing(object sender, FormClosingEventArgs e)
{
_forms.Remove((Form)sender);
}
private void FrmToolbox_FormClosing(object sender, FormClosingEventArgs e)
{
while (_forms.Count > 0)
{
_forms[0].Close();
}
}
private bool _wasMinimized = false;
private void FrmToolbox_Resize(object sender, EventArgs e)
{
if (FormWindowState.Minimized == WindowState)
{
_wasMinimized = true;
foreach(Form frm in _forms)
{
frm.Hide();
}
}
if (FormWindowState.Normal == WindowState && _wasMinimized)
{
_wasMinimized = false;
foreach (Form frm in _forms)
{
frm.Show();
}
}
}
#endregion Window handling
}
}