using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace arDev { public partial class fIOMonitor : Form { MasterK dio; public fIOMonitor(MasterK _device) { InitializeComponent(); dio = _device; } Button[] btInput; Button[] btOutput; private void fIOMonitor_Load(object sender, EventArgs e) { btInput = new Button[dio.DICount]; btOutput = new Button[dio.DOCount]; for(int i = 0; i< dio.DICount;i++) { Button lb = new Button(); lb.Text = string.Format("{0}",i+1); lb.Tag = i; lb.Click += lb_ClickI; lb.Dock = DockStyle.Fill; lb.BackColor = dio.INPUT(i) ? Color.Lime : Color.White; btInput[i] = lb; this.tblINput.Controls.Add(lb); } for (int i = 0; i < dio.DOCount; i++) { Button lb = new Button(); lb.Text = string.Format("{0}", i + 1); lb.Tag = i; lb.Click += lb_ClickO; lb.Dock = DockStyle.Fill; lb.BackColor = dio.OUTPUT(i) ? Color.Lime : Color.White; btOutput[i] = lb; this.tblOutput.Controls.Add(lb); } dio.IOValueChanged += dio_IOValueChanged; } void dio_IOValueChanged(object sender, MasterK.IOValueEventArgs e) { if(e.Direction == MasterK.eIOPINDIR.INPUT) { btInput[e.ArrIDX].BackColor = e.NewValue ? Color.Lime : Color.White; } else { btOutput[e.ArrIDX].BackColor = e.NewValue ? Color.Lime : Color.White; } } void lb_ClickI(object sender, EventArgs e) { var bt = sender as Button; //MessageBox.Show("input click : " + bt.Tag.ToString()); } void lb_ClickO(object sender, EventArgs e) { var bt = sender as Button; var idx = int.Parse(bt.Tag.ToString()); dio.SetToggle(idx); } } }