两个GridControl 一左一右,对比着编辑
时间: 2024-03-04 21:52:11 浏览: 29
您可以使用两个GridControl,一个放在左侧,一个放在右侧,然后使用相应的事件(例如GridControl.FocusedRowChanged)实现对比编辑的功能。您可以在左侧GridControl中选择一行并在右侧GridControl中进行相应的编辑,然后比较两个GridControl中的数据差异。如果您需要更复杂的比较功能,您可以使用第三方库或自己编写算法来实现。
相关问题
两个GridControl 一左一右 横纵滚动条同步
实现两个GridControl一左一右横纵滚动条同步的方法如下:
1. 通过绑定两个GridControl的VScroll和HScroll事件,获取当前滚动条的位置。
2. 在VScroll和HScroll事件中,将获取到的滚动条位置设置到另一个GridControl中。
下面是示例代码:
```
private void gridControl1_VScroll(object sender, EventArgs e)
{
int pos = GetScrollPos(gridControl1.Handle, SB_VERT);
SetScrollPos(gridControl2.Handle, SB_VERT, pos, true);
SendMessage(gridControl2.Handle, WM_VSCROLL, (IntPtr)SB_THUMBPOSITION + 0x10000 * pos, IntPtr.Zero);
}
private void gridControl1_HScroll(object sender, EventArgs e)
{
int pos = GetScrollPos(gridControl1.Handle, SB_HORZ);
SetScrollPos(gridControl2.Handle, SB_HORZ, pos, true);
SendMessage(gridControl2.Handle, WM_HSCROLL, (IntPtr)SB_THUMBPOSITION + 0x10000 * pos, IntPtr.Zero);
}
```
需要注意的是,以上代码中使用了Win32 API函数 GetScrollPos、SetScrollPos和SendMessage,需要在代码中进行引用,同时需要在GridControl的Handle创建完成后(例如在GridControl的Load事件中)进行调用。
实现改前数据和改后数据的两个gridcontrol 对比着编辑
要实现改前数据和改后数据的两个GridControl对比着编辑,你需要使用两个GridControl和两个GridView,并在编辑时将改动同步到另一个GridView中。
以下是一些示例代码,假设你的数据源是一个DataTable:
```csharp
// 创建两个GridControl和两个GridView
GridControl gcBefore = new GridControl();
GridView gvBefore = new GridView(gcBefore);
GridControl gcAfter = new GridControl();
GridView gvAfter = new GridView(gcAfter);
// 将两个GridView添加到对应的GridControl中
gcBefore.MainView = gvBefore;
gcAfter.MainView = gvAfter;
// 设置两个GridView的DataSource
gvBefore.GridControl.DataSource = originalDataTable;
gvAfter.GridControl.DataSource = editedDataTable;
// 将两个GridControl加入到布局控件中
layoutControl1.Controls.Add(gcBefore);
layoutControl1.Controls.Add(gcAfter);
// 编辑时同步数据
gvBefore.CellValueChanged += (sender, e) =>
{
// 将改动同步到另一个GridView中
int rowHandle = gvBefore.GetDataSourceRowIndex(e.RowHandle);
editedDataTable.Rows[rowHandle][e.Column.FieldName] = e.Value;
gvAfter.RefreshData();
};
gvAfter.CellValueChanged += (sender, e) =>
{
// 将改动同步到另一个GridView中
int rowHandle = gvAfter.GetDataSourceRowIndex(e.RowHandle);
originalDataTable.Rows[rowHandle][e.Column.FieldName] = e.Value;
gvBefore.RefreshData();
};
```
这样,你就可以在两个GridControl中对比着编辑改前数据和改后数据了。当你在一个GridView中编辑数据时,另一个GridView也会自动更新。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)