winform如何从DataGridView中从右键菜单获取一行数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform如何从DataGridView中从右键菜单获取一行数据相关的知识,希望对你有一定的参考价值。

我在winform 一个界面有个dataGridView 我现在用鼠标右键单击dataGridView 中其中任意一行,然后转到别的界面,我想知道在现在的界面怎么获取上个界面 dataGridView 那行的数据? 最好能给代码提示!谢谢!
crazy_ices 谢谢您!您说是单击事件,我的意思是右键单击 拿到当前行的引用!我就能在别的界面进行处理!

    拖拽一个ContextMenuStrip到界面上,设置好列头要显示的菜单,可以通过编程来动态设置

    DataGridView设置ColumnHeaderMouseClick事件:

    代码如下:

    private void DataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
           
                if (e.Button == MouseButtons.Right)
               
                    Point point = DataGridView1.PointToScreen(new Point(0, 0));
                    int x = 0;
                    DataGridViewColumnCollection columns = DataGridView1.Columns;
                    for (int i = 0; i < e.ColumnIndex; i++)
                   
                        if (columns[i].Visible)
                            x += columns[i].Width;
                   
                    menu1.Show(DataGridView1.PointToScreen(new Point(x + e.X, e.Y)));
               

    代码说明:

       只处理右键事件

      处理隐藏列的问题和菜单显示位置。

参考技术A 在dataGridView的单击事件中添加以下代码:
string str = dgvuserInfo.CurrentRow.Cells[0].Value.ToString();
意思为获取当前点击行的第一列的值。“dgvuserInfo”为dataGridView的ID

那你弄个右键菜单不久可以了吗?
参考技术B 加一个右键菜单,在它的click事件里
pulilc static string str = dataGridView1.SelectedRows[0].Cells[1].Value;.ToString();
用变量得到选中项的第1行和第2列的值
参考技术C 应该是给GridView加一个自定义事件,具体怎么写去网上找找吧。

C# winform datagridview 里的下拉框中 既可以从下拉框里选择数据,也可以让客户自己手动往里输入数据,怎

参考技术A DataGridViewComboBoxColumn cmbox = dataGridView1.Columns["绑定列"] as DataGridViewComboBoxColumn;
cmbox.DataSource = ds.Tables[0];
cmbox.DisplayMember = "ctype";
cmbox.ValueMember = "ctype";
cmbox.DataPropertyName = "ctype";
comboBox1.DataSource = CommonSerivce.GetDataSetByColomnName("Customer_Info", "clevel");

或者采用以下方法:
((DataGridViewComboBoxColumn)dataGridView1.Columns["绑定列"]).DataSource = ds;
((DataGridViewComboBoxColumn)dataGridView1.Columns["绑定列"]).DisplayMember = "clevel";
((DataGridViewComboBoxColumn)dataGridView1.Columns["绑定列"]).ValueMember = "clevel";
((DataGridViewComboBoxColumn)dataGridView1.Columns["绑定列"]).DataPropertyName = "company";
参考技术B 这很简单,自定义列,列的类型选择Combobox就行了
定义列在DataGridView属性中进行
参考技术C 楼上正解

以上是关于winform如何从DataGridView中从右键菜单获取一行数据的主要内容,如果未能解决你的问题,请参考以下文章

在Xamarin android中从右向左滑动抽屉

如何在winforms c#中从图片框中裁剪和保存非矩形但多边形区域[重复]

使用Entity Framework时如何在Winform场景下实现DataGridView的分页?

c# winform datagridview界面上的行删了,但datagridview数据源没有同步如何解决

C# winform datagridview如何计算统计

如何在div中从右到左显示图像