123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace SmartCoalApplication
- {
- class FloatingFormMethod
- {
- /// <summary>
- /// 显示浮动窗口
- /// </summary>
- /// <param name="form">获取已经弹出的窗口对象</param>
- /// <param name="af">没有弹出的窗口对象则创建</param>
- /// <param name="workspace">AppWorkspace的引用</param>
- public static void ShowFloatForm(Form form, FloatingToolForm af, AppWorkspace workspace, bool isLeft = false)
- {
- new FloatingFormMethod(workspace).ShowFloatForm(form, af, isLeft);
- }
- /// <summary>
- /// 显示浮动窗口
- /// </summary>
- /// <param name="form">获取已经弹出的窗口对象</param>
- /// <param name="af">没有弹出的窗口对象则创建</param>
- /// <param name="workspace">AppWorkspace的引用</param>
- public static void ShowResultFloatForm(Form form, FloatingToolForm af, AppWorkspace workspace)
- {
- new FloatingFormMethod(workspace).ShowResultFloatForm(form, af);
- }
- /// <summary>
- /// AppWorkspace的引用
- /// </summary>
- private AppWorkspace appWorkspace;
- private FloatingFormMethod(AppWorkspace workspace)
- {
- this.appWorkspace = workspace;
- }
- /// <summary>
- /// 显示浮动窗口
- /// </summary>
- /// <param name="form">获取已经弹出的窗口对象</param>
- /// <param name="af">没有弹出的窗口对象则创建</param>
- private void ShowResultFloatForm(Form form, FloatingToolForm af)
- {
- if (form == null || form.IsDisposed)
- {
- if (af == null)
- return;
- SnapObstacle obstacle = af.SnapObstacle;
- SnapManager sm = SnapManager.FindMySnapManager(this.appWorkspace);
- if (sm != null)
- {
- if (obstacle.EnableSave)
- {
- try
- {
- sm.LoadSnapObstacleData(SystemLayer.Settings.CurrentUser, obstacle);
- }
- catch (Exception)
- {
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Right);
- }
- af.FormClosing += Af_FormClosing;
- }
- else
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Right);
- }
- //af.StartPosition = FormStartPosition.CenterScreen;
- Form mainForm = appWorkspace.FindForm();
- if (mainForm != null)
- //mainForm.Activate();
- af.Show(mainForm/*MainForm.ActiveForm*/);
- //af.Activate();
- //af.WindowState = FormWindowState.Normal;
- }
- else
- {
- if (af == null)
- return;
- SnapObstacle obstacle = af.SnapObstacle;
- SnapManager sm = SnapManager.FindMySnapManager(this.appWorkspace);
- if (sm != null)
- {
- if (obstacle.EnableSave)
- {
- try
- {
- sm.LoadSnapObstacleData(SystemLayer.Settings.CurrentUser, obstacle);
- }
- catch (Exception)
- {
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Right);
- }
- af.FormClosing += Af_FormClosing;
- }
- else
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Right);
- }
- form.Activate();
- af.Show(form);
- }
- }
- /// <summary>
- /// 显示浮动窗口
- /// </summary>
- /// <param name="form">获取已经弹出的窗口对象</param>
- /// <param name="af">没有弹出的窗口对象则创建</param>
- private void ShowFloatForm(Form form, FloatingToolForm af, bool isLeft = false)
- {
- if (form == null || form.IsDisposed)
- {
- if (af == null)
- return;
- SnapObstacle obstacle = af.SnapObstacle;
- SnapManager sm = SnapManager.FindMySnapManager(this.appWorkspace);
- if (sm != null)
- {
- if (obstacle.EnableSave)
- {
- try
- {
- if (isLeft)
- {
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Left);
- }
- else
- {
- sm.LoadSnapObstacleData(SystemLayer.Settings.CurrentUser, obstacle);
- }
- }
- catch (Exception)
- {
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Right);
- }
- af.FormClosing += Af_FormClosing;
- }
- else
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Right);
- }
- //af.StartPosition = FormStartPosition.CenterScreen;
- Form mainForm = appWorkspace.FindForm();
- if (mainForm != null)
- //mainForm.Activate();
- af.Show(mainForm/*MainForm.ActiveForm*/);
- //af.Activate();
- //af.WindowState = FormWindowState.Normal;
- }
- else
- {
- form.Activate();
- form.WindowState = FormWindowState.Normal;
- }
- }
- /// <summary>
- /// 浮动窗口消失时保存窗口位置信息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void Af_FormClosing(object sender, FormClosingEventArgs e)
- {
- SnapObstacle obstacle = ((FloatingToolForm)sender).SnapObstacle;
- SnapManager sm = SnapManager.FindMySnapManager(this.appWorkspace);
- if (sm != null && obstacle.EnableSave)
- sm.SaveSnapObstacleData(SystemLayer.Settings.CurrentUser, obstacle);
- }
- }
- }
|