2011-04-27 116 views
0

当单击ButtonEdit的省略号按钮时,在ButtonEdit的ButtonClick事件中,我启动另一个表单,用户从中选择一个表单。DevExpress RepositoryItemButtonEdit

该查找表单通知我选择的值的原始形式。

当我的原始形式学习所选值时,它使用SetCellValue方法设置与ButtonEdit关联的单元格的值。但是,该值不显示,直到单元失去焦点。有没有什么办法可以让ButtonEdit作为就地RowEdit的单元格仍然有焦点时显示值?

回答

2

Set view.ActiveEditor.EditValue

+0

看起来很有希望。我会回报。谢谢 – Tim 2011-04-29 18:26:11

+0

按需要工作。谢谢! – Tim 2011-04-29 18:33:44

2

处理ButtonClick事件时,传递给事件处理程序的sender参数表示其值必须更改的编辑器实例。所以,我想发布一个额外的解决方案,展示如何设置编辑器的值:

private void repositoryItemButtonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { 
    DevExpress.XtraEditors.ButtonEdit edit = sender as DevExpress.XtraEditors.ButtonEdit; 
    edit.EditValue = SomeValue; 
} 
+0

第二种解决方案不起作用。为什么?因为在ButtonClick事件中,我将启动另一个窗体作为对话框(“查找窗体”)。当用户在查找表单上做出选择时,它会引发我原始表单正在侦听的事件。它在LookupItemChosen事件中,我必须设置编辑值,而不是在ButtonClick事件中。 – Tim 2011-04-29 18:19:14

+0

如果可能的话,我会支持DevExpress团队发布的解决方案。 RepositoryItem应该总是有一个“OwnerEdit”作为事件的发送者,但是编辑并不总是处于“视图”中。 我也希望查找对话框有一个属性为其选定的值,而不是依赖于其中的事件。例如System.Windows.Forms.OpenFileDialog有它的属性“FileName”。 – Snixtor 2012-02-27 06:18:38