From c6bf9823dfee35b9e1b6829ffd9e651d3d53c9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E5=87=AF?= Date: Fri, 14 Mar 2025 11:39:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E4=B8=8A=E4=BC=A0=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=85=A8=E9=80=89=E4=B8=8E=E5=8F=96=E6=B6=88=E5=85=A8?= =?UTF-8?q?=E9=80=89=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CNAS_RunSync/ucSynchrousMain.cs | 84 ++++++++++++++++++++++++--------- 1 file changed, 61 insertions(+), 23 deletions(-) diff --git a/CNAS_RunSync/ucSynchrousMain.cs b/CNAS_RunSync/ucSynchrousMain.cs index fbcb417..6379ffd 100644 --- a/CNAS_RunSync/ucSynchrousMain.cs +++ b/CNAS_RunSync/ucSynchrousMain.cs @@ -105,7 +105,7 @@ namespace CNAS_RunSync if (syncInstrumentItem.LstSyncPramas.Count <= 0) return; //创建选择列 - AddCheckBoxColumn(dgvSyncData, "selectedColumn", "选择", 80, true); + AddCheckBoxColumn(dgvSyncData, "selectedColumn", "", 80, true); //创建数据列 foreach (var item in syncInstrumentItem.LstSyncPramas) @@ -258,7 +258,9 @@ namespace CNAS_RunSync Name = strColumnName, Visible = bVisible, Width = Width, - ReadOnly = false + ReadOnly = false, + TrueValue = true, + FalseValue = false }; //设置文本对齐方式 @@ -267,6 +269,63 @@ namespace CNAS_RunSync //设置该列背景颜色 dgvShow.Columns.Add(selectedColumn); + + // 添加列头复选框 + Rectangle rect = dgvShow.GetCellDisplayRectangle(0, -1, true); + rect.X = rect.Location.X + (rect.Width - 14) / 2 + 0; + rect.Y = rect.Location.Y + (rect.Height - 14) / 2 + 9; + + this.cbHeader = new CheckBox + { + Name = "checkboxHeader", + Size = new Size(14, 14), + Location = rect.Location + }; + cbHeader.CheckedChanged += new EventHandler(cbHeader_CheckedChanged); + dgvShow.Controls.Add(cbHeader); + } + + private CheckBox cbHeader = new CheckBox(); + + private void cbHeader_CheckedChanged(object sender, EventArgs e) + { + dgvSyncData.EndEdit(); + if (sender is CheckBox self) + { + for (int index = 0; index < dgvSyncData.Rows.Count; ++index) + { + DataGridViewRow row = dgvSyncData.Rows[index]; + if (CheckState.Checked == self.CheckState) + { + row.Cells["selectedColumn"].Value = true; + } + else if (CheckState.Unchecked == self.CheckState) + { + row.Cells["selectedColumn"].Value = false; + } + } + } + } + + private void dgvSyncData_CellValueChanged(object sender, DataGridViewCellEventArgs e) + { + //只有第一列“选择列”时触发 + if (e.ColumnIndex == 0) + { + if (dgvSyncData.Rows[e.RowIndex].Cells[0].Value.ToString() == "True") + dgvSyncData.Rows[e.RowIndex].DefaultCellStyle.BackColor = FinedBackColor; + else + { + if (e.RowIndex % 2 == 1) + { + dgvSyncData.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.WhiteSmoke; + } + else + { + dgvSyncData.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White; + } + } + } } /// @@ -768,27 +827,6 @@ namespace CNAS_RunSync } } - private void dgvSyncData_CellValueChanged(object sender, DataGridViewCellEventArgs e) - { - //只有第一列“选择列”时触发 - if (e.ColumnIndex == 0) - { - if (dgvSyncData.Rows[e.RowIndex].Cells[0].Value.ToString() == "True") - dgvSyncData.Rows[e.RowIndex].DefaultCellStyle.BackColor = FinedBackColor; - else - { - if (e.RowIndex % 2 == 1) - { - dgvSyncData.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.WhiteSmoke; - } - else - { - dgvSyncData.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White; - } - } - } - } - public void WriteMsgToRichTextBox(string strMsg) { Invoke(new MethodInvoker(delegate ()