C#自动化程序界面
最近的学习成果展示如下:
主界面
参数界面
手动
运行截图:
部分代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.Remoting.Messaging;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;
using static System.Net.Mime.MediaTypeNames;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace MutilForm
{
public partial class Auto : Form
{
int l1;
int t1;
int l2;
int t2;
int t3;
bool S1Outflow = false;
bool S2Outflow = false;
string Temp = "";
public DataManage dataManage = new DataManage();
public enum S1Step
{
检测有料,
开始流入,
检测到位,
请求流出,
等待流出
}
public enum S2Step
{
向前站要料,
检测有料,
开始流入,
检测到位,
等待流出
}
public S1Step S1CurrentState { get; private set; }
public S2Step S2CurrentState { get; private set; }
DataTable dataTable_Log = new DataTable();
DataTable dataTable_Data = new DataTable();
DataTable dataTable_Data1 = new DataTable();
public Auto()
{
this.FormBorderStyle = FormBorderStyle.None;
InitializeComponent();
this.Width = 1200;
this.Height = 400;
l1 = S1Btn.Left;
t1 = S1Btn.Top;
l2 = S2Btn.Left;
t2 = S2Btn.Top;
S1Outflow = false;
S1Btn.Anchor = AnchorStyles.Top | AnchorStyles.Left;
S2Btn.Anchor = AnchorStyles.Top | AnchorStyles.Left;
S1CurrentState = S1Step.检测有料;
S2CurrentState = S2Step.向前站要料;
S2Btn.Visible = false;
S2Btn.Enabled = false;
//dataTable_Log初始化
dataTable_Log.Columns.Add("Station", typeof(string));
dataTable_Log.Columns.Add("AutoStep", typeof(string));
for(int i=0;i<2;i++)
{
DataRow row = dataTable_Log.NewRow();
if(i==0)
{
row["Station"] = "S1";
}
else
{
row["Station"] = "S2";
}
row["AutoStep"] = "";
dataTable_Log.Rows.Add(row);
}
dataGridView_Log.DataSource = dataTable_Log;
dataTable_Data = dataManage.GetXML();
dataTable_Data.Rows[0].Delete();
dataTable_Data.Rows[0].Delete();
dataGridView_Data.DataSource = dataTable_Data;
dataGridView_Data.ScrollBars = ScrollBars.Both; // 显示水平和垂直滚动条
}
private void Start_Click(object sender, EventArgs e)
{
Global.Instance.S1_setOutput = false;
Thread thread = new Thread(S1);
thread.Start();
Global.Instance.S2_WaitInput = false;
Thread thread2 = new Thread(S2);
thread2.Start();
}
public void S1()
{
while (true)
{