FrmDevice.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using AppLibs.Devices;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. using Tps_LQ_Transmitter.com;
  12. namespace Tps_LQ_Transmitter.views
  13. {
  14. public partial class FrmDevice : Form
  15. {
  16. List<DeviceParameter> devs;
  17. public FrmDevice()
  18. {
  19. InitializeComponent();
  20. dataGridViewX1.AutoGenerateColumns = false;
  21. }
  22. public void ShowDevices(IList<DeviceNode> devices)
  23. {
  24. AppLibs.Devices.IDeviceHost devHost = Bundle.host.GetFirstOrDefaultService<AppLibs.Devices.IDeviceHost>();
  25. if(devHost != null)
  26. {
  27. devs = devHost.GetAllDevices();
  28. dataGridViewX1.DataSource = null;
  29. dataGridViewX1.DataSource = devices;
  30. colDeviceModel.DisplayMember = "DeviceModel";
  31. colDeviceModel.ValueMember = "DeviceHandle";
  32. colDeviceModel.Items.Clear();
  33. foreach (var item in devs)
  34. {
  35. colDeviceModel.Items.Add(item);
  36. }
  37. }
  38. }
  39. bool canEdit = true;
  40. private void dataGridViewX1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
  41. {
  42. if (e.RowIndex >= 0 && e.ColumnIndex == 4 && canEdit)
  43. {
  44. if (this.devs == null || devs.Count <= 0)
  45. return;
  46. canEdit = false;
  47. string str = dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
  48. DeviceParameter dp = devs.FirstOrDefault(x => x.DeviceHandle == str);
  49. if (dp != null)
  50. {
  51. dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value = dp.DeviceHandle;
  52. dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex - 2].Value = dp.DeviceModel;
  53. }
  54. canEdit = true;
  55. }
  56. }
  57. //设备状态是false,就显示红色背景
  58. private void dataGridViewX1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
  59. {
  60. if (dataGridViewX1.DataSource == null)
  61. return;
  62. IList<DeviceNode> devices = (IList<DeviceNode>)dataGridViewX1.DataSource;
  63. if(e.RowIndex >=0 && devices[e.RowIndex].State == false)
  64. {
  65. dataGridViewX1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
  66. }
  67. else
  68. {
  69. dataGridViewX1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Empty;
  70. }
  71. }
  72. private void BtnContinue_Click(object sender, EventArgs e)
  73. {
  74. this.DialogResult = DialogResult.Yes;
  75. this.Visible = false;
  76. }
  77. private void BtnCancel_Click(object sender, EventArgs e)
  78. {
  79. this.DialogResult = DialogResult.Cancel;
  80. this.Visible = false;
  81. }
  82. }
  83. }