簡體   English   中英

當DataGridView ButtonColumn單擊時

[英]when DataGridView ButtonColumn Clicked

我的表單中有一個dataGridView,並且其中有一個按鈕列。 當只單擊其中一個按鈕時,我想執行一些代碼。 我試圖在代碼下面寫werite,但是當我單擊列標題時,將執行塊中的寫入代碼。 有誰可以幫助我嗎?

private void UpDatedataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
{
    MessageBox.Show(UpDatedataGridView2.CurrentCellAddress.ToString());

    if (UpDatedataGridView2.RowCount > 0)
    {
        if (UpDatedataGridView2.CurrentCell.Value.ToString().Trim() == "delete Record")
        {
            if (DialogResult.Yes == MessageBox.Show("Are you sure to delete the record", "Delete", MessageBoxButtons.YesNo))
            {
                UpDatedataGridView2.ReadOnly = false;
                UpDatedataGridView2.AllowUserToDeleteRows = true;
                string number = UpDatedataGridView2.CurrentRow.Cells[1].Value.ToString();
                da.DeleteCommand.CommandText = "Delete from tblKala where ID =" + number;
                conn.Open();
                da.DeleteCommand.ExecuteNonQuery();
                conn.Close();
                dataGridView1.ReadOnly = true;
                UpDatedataGridView2.DataSource = SelectData();
                MessageBox.Show("Deleting done !");
            }
        }
    }
}

添加以下檢查:

if (UpDatedataGridView2.Columns[e.ColumnIndex] is
    DataGridViewButtonColumn &&
    e.RowIndex != -1)

第一個條件檢查用戶是否單擊了屬於按鈕列的單元格,而第二個條件檢查了單擊是否連續發生。

更新:我忘記了您必須檢查ColumnIndex:如果用戶單擊標題行,則ColumnIndex的值為-1,因此UpDatedataGridView2.Columns [e.ColumnIndex]引發異常。 總而言之,最終檢查應如下所示:

if (e.ColumnIndex != -1 &&
    e.RowIndex != -1 && UpDatedataGridView2.Columns[e.ColumnIndex] is
    DataGridViewButtonColumn )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM