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:通过双击在触摸设备上切换缩放