当我按下鼠标右键时,如何在datagridview中选择一行?

时间:2014-01-06 13:58:53

标签: c# winforms datagridview contextmenustrip

我有一个form1,我的datagridview位于其中。我的form2有一个文本框,其中的值取自form1的datagridview。我已经在我的datagridview中插入了一个contextmenustrip,然后将从所选行中获取数据并将其传递给form2。我只在列表视图中完成此操作。这就是我在listview中的表现

Form1中:

private void viewToolStripMenuItem1_Click(object sender, EventArgs e)
{
 strinf dis = listView1.Items[listView1.FocusedItem.Index].SubItems[0].Text;
 int r = Convert.ToInt32(dis); 
 form2 nf2 = new form2(r);
 nf2.ShowDialog();
}

表格2:

public Form2(int g)
{            
 InitializeComponent();
 textBox1.text = g.ToString();                 
}

我如何在datagridview中执行此操作?

1 个答案:

答案 0 :(得分:0)

解决方案很好地描述了here

private void DataGridViewMouseDownHandler(object sender, MouseEventArgs e)
{
    if(e.Button == MouseButtons.Right)
    {
        var hti = dataGridView.HitTest(e.X, e.Y);
        dataGridView.ClearSelection();
        dataGridView.Rows[hti.RowIndex].Selected = true;
    }
}

this.dataGridView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DataGridViewMouseDownHandler);