【问题标题】:sOpen Menu popup programmaticallysOpen 以编程方式弹出菜单
【发布时间】:2013-11-26 10:20:49
【问题描述】:

我正在开发一个 Windows Mobile 6.5.3 应用程序。我的问题是如何以编程方式打开菜单弹出窗口。

我所做的是模拟触摸事件。通过使用

[DllImport("coredll")] private static extern void mouse_event(MOUSEEVENTF dwFlags, int dx, int dy, int dwData, int dwExtraInfo);

但这里的问题是我需要指定菜单按钮的位置,而且它还显示了一些鼠标指针,我不喜欢...

我可以发送任何消息并打开菜单弹出窗口吗?

根据要求,我正在添加更多信息。我想打开以编程方式按下菜单按钮后打开的弹出窗口。

【问题讨论】:

    标签: c# windows windows-mobile


    【解决方案1】:

    从控件中获取上下文菜单,然后使用上下文菜单的Show() 方法。

    编辑:修改答案并更改代码

    这就是我所做的让它为我工作的事情。

    ContextMenu ctxMenu = BTN_TheButtonControlThatYouPressed.ContextMenu; ctxMenu.Placement = System.Windows.Controls.Primitives.PlacementMode.MousePoint; ctxMenu.IsOpen = true;

    现在,因为您的上下文菜单已分配给您的表单而不是您的按钮,您只需将“BTN_TheButtonControl...”换成一个简单的“this”,它应该“定位”表单。

    所以 - 将以下代码添加到按钮的点击事件中,你应该没问题。

    ContextMenu ctxMenu = this.ContextMenu; ctxMenu.Placement = System.Windows.Controls.Primitives.PlacementMode.MousePoint; ctxMenu.IsOpen = true;

    ** 不知道回车是怎么回事...不能让他们只用第二个代码块...

    【讨论】:

    • 表单中的菜单不是从 Control 派生的。如何从 Menu 中获取上下文菜单?
    • 我已经用一些代码为你编辑了我的答案 - 试试看!
    • 你能补充一些细节吗?问题不是很清楚。您的控件是什么类型的控件,它具有您将通过代码显示的上下文菜单?
    • 不,该代码不起作用。由于与菜单栏关联的上下文菜单与表单本身的上下文菜单不同。
    • 好的,然后从工具栏中获取上下文菜单? - 这不可能吗? ctxMenu = YourToolBarControl.ContextMenu;
    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2019-11-22
    • 2016-07-22
    • 2015-08-16
    相关资源
    最近更新 更多