在我的应用程序中,我有一个带有两个面板的表单。一个面板里面是一个按钮。在另一个内部是一个 DevExpress Grid 控件。网格由 3 列组成。您可以将值从一列拖到另一列中以进行复制。我的问题是,每当我从一列拖放到另一列时,对应用程序的关注就会进入一种不寻常的状态。网格保持聚焦;我可以将鼠标悬停在标题上并看到它们正常反应。然而,应用程序的其余部分并未集中。将鼠标悬停在另一个面板中的按钮上没有反应,菜单或表单控件也没有反应。如果我单击该按钮,它的反应就像我单击了一个未聚焦的应用程序一样。我必须再次单击才能真正激活按钮。除了网格之外的每个控件都相同。我曾尝试在按钮和表单上使用 Activate() 和 Focus() 但无济于事。namespace Company.StuffUploader{ public partial class ComputationGrid : DevExpress.XtraEditors.XtraUserControl { private BindingList<ComputationLinkModel> _links = new BindingList<ComputationLinkModel>(); public List<ComputationLinkModel> ComputationLinkModels { get { return new List<ComputationLinkModel>(_links); } } public ComputationGrid() { InitializeComponent(); } private void ComputationGrid_Load(object sender, EventArgs e) { _gridControl.DataSource = _links; } private DragDropEffects GetDragEffect(DragEventArgs e) { var text = e.Data.GetData("System.String") as string; if (text == null) return DragDropEffects.None; var link = GetLinkFromScreenPoint(new Point(e.X, e.Y)); if (link == null) return DragDropEffects.None; var tokens = text.Split('\t'); if (tokens.Count() != 2) return DragDropEffects.None; var dateString = link.movedate.ToString("yyyy-MM-dd"); if (link.StuffSurfaceName == tokens[0] && dateString != tokens[1]) return DragDropEffects.Move; else return DragDropEffects.None; } private ComputationLinkModel GetLinkFromScreenPoint(Point screenPt) { var pt = _gridControl.PointToClient(screenPt); var hitInfo = _gridView.CalcHitInfo(pt); return _gridView.GetRow(hitInfo.RowHandle) as ComputationLinkModel; }
- 2 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消