Datagrid değerlerini daha sonra kullanmak üzere satır dizinine göre alın

0

Soru

Tıkladığım bir datagrid satırının hücrelerinin değerlerini almaya ve daha sonra kullanmak üzere saklamaya çalışıyorum, ancak çalışmasını sağlayamıyorum gibi görünüyor.

Satıra tıklamak, bu değerlerle bir eylem yapmayı seçebileceğim bir menünün görünmesini sağlamalıdır.

Şimdiye kadar başardığım şey buydu.

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs x)
        {
            if (dataGridView1.Rows[x.RowIndex].Cells["Name"].Value != null) name = dataGridView1.Rows[x.RowIndex].Cells["Name"].Value.ToString();
            else if (dataGridView1.Rows[x.RowIndex].Cells["LastName"].Value != null) last = dataGridView1.Rows[x.RowIndex].Cells["LastName"].Value.ToString();
        }

        private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if (last != null && name != null)
                {
                    ContextMenu cm = new ContextMenu();
                    this.ContextMenu = cm;
                    cm.MenuItems.Add(new MenuItem("&Do something with those values in this row", new System.EventHandler(this.do_Action_with_values)));
                    cm.Show(this, new Point(e.X, e.Y));
                }
                last = null;
                name = null;
            }
        }

Kaldırma: eğer (son != null & & isim != boş)

Menünün çalışmasını sağlar, ancak değerler kaydedilmez, hepsi boştur.

Tıklanan satır için tüm sütun değerlerini dizelerde saklamanın doğru bir yolu var mı?

c# datagrid
2021-11-23 17:36:12
1

En iyi cevabı

0

Yorumlardaki istek başına, kullan CellMouseClick olay ve DataGridViewCellMouseEventArgs işleyicilerinizi, ihtiyacınız olan tüm özelliklere sahip tek bir olay işleyicisinde birleştirmek için.

Alıcı dikkat edin, aşağıdaki kod bir IDE dışında yazılmıştır, bu nedenle sözdizimi/diğer hatalar olabilir.

    private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {
        if (e.Button != MouseButtons.Right) return;
        int row = e.RowIndex;
        string name = dataGridView1.Rows[row].Cells["Name"].Value;
        string last = dataGridView1.Rows[row].Cells["LastName"].Value;
        if (name == null || name.Trim().Length == 0) return;
        if (last == null || last.Trim().Length == 0) return;
        ContextMenu cm = new ContextMenu();
        this.ContextMenu = cm;
        cm.MenuItems.Add(new MenuItem("&Do something with those values in this row", new System.EventHandler(this.do_Action_with_values)));
        cm.Show(this, new Point(e.X, e.Y));
    }
2021-11-23 18:39:27

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................