c# - 仅在组合框的可编辑区域捕获点击事件

标签 c# winforms drop-down-menu

我正在尝试以下列方式使用 C# WinForms 组合框:

a) 常规使用:如果按下“向下箭头”按钮,下拉区域打开,用户选择所需的项目 - 没问题..

b) 高级使用:如果用户单击下拉控件的可编辑区域,将打开另一个具有高级选择机制的对话框。

目前,我正在组合框的 onclick 事件处理程序中调用高级对话框。但是,现在常规使用 DropDownbox 不再可用了。即使您只单击下拉箭头,也会打开高级对话框。

我找不到另一个我可以使用的可能事件,所以我假设如果用户单击控件的可编辑部分或控件的按钮,我必须检查事件处理程序。有什么想法可以有效地做到这一点吗?

感谢所有提示。

最佳答案

有两个有趣的事件;下拉并单击。以“正常”方式处理 DropDown。对于 Click,您实际上可以尝试处理包含坐标的 MouseDown。将这些坐标(基于光标在整个屏幕上的位置)转换为相对于控件的位置,如果鼠标当前位于控件的箭头部分,则只需退出并允许默认行为发生。否则,显示更高级的下拉菜单。

关于c# - 仅在组合框的可编辑区域捕获点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464355/

相关文章:

c# - 如何在 WP 8.1 中获得软键盘下方的按钮?

c# - 如何向外部证明数据文件未被篡改?

c# - 如何在按钮名称下加下划线

asp.net-mvc - 在编辑器模板中设置选择列表的默认选择值

PHP MYSQL - 下拉选择依赖于先前的下拉菜单

c# - 在 C# 中通过 Array 或 List 在列表框中添加值时出现 Nullrefererencepointer 异常

c# - 如何检查网络连接?

c# - Winforms 首选项值

.net - 如何为 WinForms 应用程序和 SQL Server 实现 SSO(单点登录)

drop-down-menu - Bootstrap 下拉菜单不起作用