private void detailView1_MouseDown(object sender, MouseEventArgs e) { if ((Control.ModifierKeys & Keys.Control) != Keys.Control) { GridView view = sender as GridView; GridHitInfo hi = view.CalcHitInfo(e.Location); if (hi.InRowCell) { if (hi.Column.RealColumnEdit.GetType() == typeof(RepositoryItemButtonEdit)) { view.FocusedRowHandle = hi.RowHandle; view.FocusedColumn = hi.Column; view.ShowEditor(); //force button click ButtonEdit edit = (view.ActiveEditor as ButtonEdit); Point p = view.GridControl.PointToScreen(e.Location); p = edit.PointToClient(p); EditHitInfo ehi = (edit.GetViewInfo() as ButtonEditViewInfo).CalcHitInfo(p); if (ehi.HitTest == EditHitTest.Button) { edit.PerformClick(ehi.HitObject as EditorButton); ((DevExpress.Utils.DXMouseEventArgs)e).Handled = true; } } } } }
private void repositoryItemButtonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { if (e.Button.Kind == ButtonPredefines.Ellipsis) { MessageBox.Show("This is a dialog box."); } if (e.Button.Kind == ButtonPredefines.Combo) { ButtonEdit editor = sender as ButtonEdit; ButtonEditViewInfo evi = editor.GetViewInfo() as ButtonEditViewInfo; EditorButtonObjectInfoArgs bvi = evi.ButtonInfoByButton(e.Button); Point pt = new Point(bvi.Bounds.Left, bvi.Bounds.Bottom); pt = editor.PointToScreen(pt); popupMenu1.ShowPopup(pt); } }