Files
2026-05-29 13:44:10 +08:00

232 lines
6.1 KiB
C#

using MesControl;
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 SystemFramework;
namespace MisDataName
{
public partial class SecondForm : Form
{
public SecondForm(Point Position)
{
InitializeComponent();
InitFormDynamicControls();
InitMainSignalEvent();
FormPositionInit(Position);
InitOtherFormAction();
SyncForm_Init();
}
Form MainForm;
public SecondForm(object mainForm)
{
MainForm = (Form)mainForm;
InitializeComponent();
InitFormDynamicControls();
InitMainSignalEvent();
Point Position = new Point(MainForm.Left + MainForm.Width, MainForm.Top);
FormPositionInit(Position);
InitOtherFormAction();
SyncForm_Init();
}
void WorkStation_RefreshWorkStationStatus(string OpName, bool value)
{
try
{
PlcWorkStationSignal plcWorkStationSignal = (PlcWorkStationSignal)Controls.Find("plcWorkStationSignal_" + OpName, true)[0];
plcWorkStationSignal.PlcConnectStatusChange(value);
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, err.Message);
}
}
void WriteWorkStationSignal(string OpName,string SignalName,bool value)
{
try
{
if (Array.IndexOf(SignalNames, "TagType_"+SignalName)!=-1)
{
PlcWorkStationSignal plcWorkStationSignal = (PlcWorkStationSignal)Controls.Find("plcWorkStationSignal_" + OpName, true)[0];
plcWorkStationSignal.SignalChange("TagType_"+SignalName, value);
if (SignalName=="14")
{
WorkStation_RefreshWorkStationStatus(OpName, value);
}
}
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, err.Message);
}
}
private void SecondForm_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
MisData.PlcChange =null;
if (MisData.SyncSecondForm != null)
{
SyncForm_Cancel();
}
CancelOtherFormAction();
MainForm.BeginInvoke(MainMenuRefresh, "ToolStripMenuItem_VWSStatus");
this.Dispose();
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, err.Message);
}
}
void SyncForm_Init()
{
try
{
MisData.SyncSecondForm = new SyncOtherForm(FormSync);
MisData.MainFormActive = new MisDataName.SyncOtherForm(MainFormActive);
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, err.Message);
}
}
void SyncForm_Cancel()
{
MisData.SyncSecondForm = null;
MisData.MainFormActive = null;
}
void FormPositionInit(Point Position)
{
try
{
this.Location = (Point)new Size(Position);
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, err.Message);
}
}
void FormSync(object Position)
{
try
{
this.Location = (Point)Position;
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, err.Message);
}
}
void MainFormActive(object obj)
{
if(Convert .ToBoolean (obj ))
{
this.TopMost = true;
this.TopMost = false;
}
}
void InitOtherFormAction()
{
try
{
MisData.SecondFormClose = new MainAct(this.Close);
MisData.OtherFormHide = new MainAct(HideThisForm);
MisData.OtherFormShow = new MainAct(ShowThisForm);
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, err.Message);
}
}
void CancelOtherFormAction()
{
MisData.SecondFormClose = null;
MisData.OtherFormHide = null;
MisData.OtherFormShow = null;
}
void ShowThisForm()
{
this.Show();
this.WindowState = FormWindowState.Normal;
}
void HideThisForm()
{
this.Hide();
}
private void SecondForm_LocationChanged(object sender, EventArgs e)
{
try
{
Point MainPosation=(Point)MisData.QueryMainFormPosition(null);
if(Math.Abs ( MainPosation .X -this .Left)<25&& Math.Abs(MainPosation.Y - this.Top ) < 20)
{
if (MisData.SyncSecondForm == null)
{
SyncForm_Init();
MainForm.Invoke(MisData.MainActived);
FormSync(MainPosation);
}
}
else
{
if (MisData.SyncSecondForm != null)
{
SyncForm_Cancel();
}
}
}
catch (Exception err)
{
ApplicationLog.WriteLog(err, err.Message);
}
}
private void timer_ControlInternalChange_Tick(object sender, EventArgs e)
{
if(PlcConnectTimer!=null)
{
PlcConnectTimer();
}
}
}
}