c# devexpress 双击在两个网格之间传输数据

Posted

技术标签:

【中文标题】c# devexpress 双击在两个网格之间传输数据【英文标题】:c# devexpress data transfer between two grids with double click 【发布时间】:2021-12-21 04:31:13 【问题描述】:

我有 2 个网格视图。我在第一个网格中列出了我的产品,我想通过双击下一个网格来传输用户从该列表中选择的产品。 (双击)我该怎么做?

enter image description here

【问题讨论】:

【参考方案1】:

我使用下面的代码将双击的行转移到另一个网格控件,它可以工作。相同或相似的代码可能适合您。

private void gridView1_DoubleClick(object sender, EventArgs e)

    GridView view = sender as GridView;
    DevExpress.Utils.DXMouseEventArgs ea = e as DevExpress.Utils.DXMouseEventArgs;
    DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo info = view.CalcHitInfo(ea.Location);
    if (view == gridView1)//ilk girdden mi double click yapılmış...
    
        if (info.InRow)//row'a mı double click yapılmış
        
            DataTable dtsource = gridView1.GridControl.DataSource as DataTable;
            DataTable dtdestination = gridControl2.DataSource as DataTable;//eklenecek grid
            DataRow sourcerow = (DataRow)((DataRowView)view.GetRow(info.RowHandle)).Row;
            DataRow dr = dtdestination.NewRow();
            dr.ItemArray = sourcerow.ItemArray;
            dtdestination.Rows.InsertAt(dr, gridView2.DataRowCount);
            dtsource.Rows.Remove(sourcerow);
        
    

【讨论】:

哪一行代码失败了?我使用数据表来数据网格数据源。这可能是我的代码和你的代码之间的区别。 嗨,我的主题仍然存在问题:(我将数据获取到第一个 gridcontrol,如下所示,当我双击任何行时,我希望将该行传输到 gridcontrol。 DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter("Select * from blabla", bgl.baglanti()); da.填充(dt); gridControl1.DataSource = dt; 网格控件的两个数据源不同,因此第一个网格的行不会直接传输到第二个网格。您是否只是想将行数据复制或克隆到另一个,换句话说,从第一个网格中删除行并将包含行数据的行添加到第二个网格,对吗? 是的,我正在尝试将双击的行添加到第二个网格控件。它不会从其他 gridcontrol 中删除,它只会在单击时添加到 gridcontrol2。 (克隆)

以上是关于c# devexpress 双击在两个网格之间传输数据的主要内容,如果未能解决你的问题,请参考以下文章

Jackmoore Zoom 1.7.15:通过双击在触摸设备上切换缩放

Vaadin 项目点击监听器双击行为

使用c#在两个进程之间进行通信

获取两个日期时间选择器选择的两天之间的记录,并在 Visual Studio C# 中用它们填充数据网格视图

在 DevExpress GridView 上更改行颜色

绑定网格视图内的多列 devexpress 组合框