1

我有一个 datagridview 显示 baisc 文档数据(名称,类型),用户导航以访问每个文档。出现导航时,富文本框会显示每个文档的第一页。但是,由于每个文档可以有多个页面,因此这些页面在单独的 BindingSource 中进行管理,因此用户可以“翻阅”它们并进行更改。

如果用户对文档名称或任何页面上的信息进行了更改,他有两种选择来保存这些内容,通过更新按钮或导航到 datagridview 中的另一个文档。

该按钮很好,因为所有绑定源都处于“静态”状态。

但是,我在使用第二个选项时遇到了问题,因为 datagridview 不提供“行更改”事件。“RowLeave”事件是不合适的,因为用户可能在一行中,但是单击富文本框以编辑相应的页面,这当然会触发“RowLeave”事件。我只想在用户实际更改文档时捕获一个事件。

我已经尝试过 Documents BindingSource "CurrentChanged" 和 "PositionChanged" 事件,但它们都发生在 "Current" 指针更改之后,因此我没有正确的更新上下文。我可以有一个全局“CurrentPosition”变量,用于在我进行更新时重新获得上下文,但这似乎不优雅。对此相当陌生,我猜我错过了一些东西,所以任何帮助都会很棒。

谢谢,詹姆斯

4

1 回答 1

0

嗨尝试使用 bindingSourceCurrentItemChanged功能

例子:

private void bindingSource1_CurrentItemChanged(object sender, EventArgs e)
{
if (!dataGridView1.IsCurrentCellDirty) return; // or IsCurrentRowDirty
//Your code
}

我希望它会有所帮助:)

于 2012-12-02T13:39:48.430 回答