using AppLibs.Devices; 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; using Tps_LQ_Transmitter.com; namespace Tps_LQ_Transmitter.views { public partial class FrmDevice : Form { List devs; public FrmDevice() { InitializeComponent(); dataGridViewX1.AutoGenerateColumns = false; } public void ShowDevices(IList devices) { AppLibs.Devices.IDeviceHost devHost = Bundle.host.GetFirstOrDefaultService(); if(devHost != null) { devs = devHost.GetAllDevices(); dataGridViewX1.DataSource = null; dataGridViewX1.DataSource = devices; colDeviceModel.DisplayMember = "DeviceModel"; colDeviceModel.ValueMember = "DeviceHandle"; colDeviceModel.Items.Clear(); foreach (var item in devs) { colDeviceModel.Items.Add(item); } } } bool canEdit = true; private void dataGridViewX1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex == 4 && canEdit) { if (this.devs == null || devs.Count <= 0) return; canEdit = false; string str = dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); DeviceParameter dp = devs.FirstOrDefault(x => x.DeviceHandle == str); if (dp != null) { dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value = dp.DeviceHandle; dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex - 2].Value = dp.DeviceModel; } canEdit = true; } } //设备状态是false,就显示红色背景 private void dataGridViewX1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) { if (dataGridViewX1.DataSource == null) return; IList devices = (IList)dataGridViewX1.DataSource; if(e.RowIndex >=0 && devices[e.RowIndex].State == false) { dataGridViewX1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red; } else { dataGridViewX1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Empty; } } private void BtnContinue_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Yes; this.Visible = false; } private void BtnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Visible = false; } } }