2017-08-28 51 views
0

選中的標題複選框選中複選框列中的所有複選框。選擇標題複選框後,當數據刷新時,它仍然顯示爲標記。 點擊確定按鈕時,我有以下代碼,它會在帶有標題的datagridview複選框以及每行中的所有複選框中加載數據。現在,選中選中所有行中所有複選框的標題複選框。然後,再次單擊確定按鈕,它將重新加載數據,但標題複選框複選框仍然顯示,而不是未選中。如何在刷新數據c#之後取消標記dataGridView上的標題複選框?

 private void buttonOk_Click(object sender, EventArgs e) 
    { 
     LoadDataGridView(); 

     CheckBox ckBoxHeader = new CheckBox(); 

     //Get the column header cell bounds 
     Rectangle rect = datagridview1.GetCellDisplayRectangle(0, -1, true); 
     rect.Y = 3; 

     //align header check box in the middle center at rect.X = 82 
     rect.X = (rect.Location.X + (rect.Width/2)) - 10 ; 

     ckBoxHeader.Size = new Size(18, 18); 
     //Change the location of the CheckBox to make it stay on the header 
     ckBoxHeader.Location = rect.Location; 
     datagridview1.Columns[0].Frozen = true; 

     ckBoxHeader.CheckedChanged += ckBoxHeader_CheckedChanged; 

     //Add the CheckBox into the DataGridView 
     datagridview1.Controls.Add(ckBoxHeader); 
    } 


    private void ckBoxHeader_CheckedChanged(object sender, EventArgs e) 
    { 
     for (int j = 0; j <= datagridview1.RowCount - 1; j++) 
     { 
      datagridview1[0, j].Value = ((CheckBox)sender).Checked; 
     } 
     datagridview1.EndEdit(); 

    } 
+0

無需任何代碼來顯示你已經嘗試過什麼,所以很遠,這將不可能幫助你。我們無法從頭爲您編寫代碼。 –

+0

用代碼說話。 –

+0

增加了代碼,現在如果你有任何提示,上面的@Keyur Patel和@ M Adeel Khalid如果有人。謝謝! – Krish

回答

0

它解決了我的問題,取消選擇標題複選框。上面的代碼應該被重寫爲:headerCheckBox.Checked = false;是工作: 加載事件代碼 -

private void Form1_Load(object sender, EventArgs e) 
    { 
     addHeaderCheckBox(); 
     changeDataGridViewColumnReadonly(); 
     datagridview1.Columns[0].Frozen = true;    
    } 

負載datagridview的方法的代碼 -

 private void LoadDataGridView() 
    { 
     DataTable dt = new DataTable(); 
     string WhereClause = " WHERE NO LIKE '" + textBoxNumber.Text.ToString().Substring(0,12) + "%' AND (DATE_TIME_START BETWEEN " + General.BuildOraDateString(dateTimePickerStart.Value) + " AND " + General.BuildOraDateString(dateTimePickerEnd.Value) + ") AND STATUS_IND = 'ST' "; 

     dt = Unit.GetData(WhereClause); 
     this.datagridview1.Refresh(); 
     this.datagridview1.DataSource = dt; 

     headerCheckBox.Checked = false; 

     headerCheckBox.MouseClick += new 
     MouseEventHandler(headerCheckBox_MouseClick); 

     datagridview1.CellValueChanged += 
     new DataGridViewCellEventHandler(datagridview1_CellValueChanged); 

     datagridview1.CurrentCellDirtyStateChanged += 
      new EventHandler(datagridview1_CurrentCellDirtyStateChanged); 

     datagridview1.CellPainting += 
      new 
     DataGridViewCellPaintingEventHandler(datagridview1_CellPainting); 
    } 

確定按鈕單擊事件 -

 private void buttonOk_Click(object sender, EventArgs e) 
    { 
     LoadDataGridView(); 
     totalCheckBoxes = dgvBaleDisposition.RowCount; 

    } 
相關問題