读书人

在C# 中使用NotifyIcon控件怎么让左

发布时间: 2012-05-11 12:55:37 作者: rapoo

在C# 中使用NotifyIcon控件,如何让左键点击和右键点击是一样的事件呢?
private void Icon_Main_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
contextList.Show();
}

}

我写的数遍点击事件,但是左键显示的位置和右键显示的位置不一样,怎么让他跟右键显示的位置一样呢?都是在右下角

contextList 是NotifyIcon控件

[解决办法]
Show方法有重载的,你可以设定弹出的Point,获取屏幕鼠标位置
int i = MousePosition.X;
int j = MousePosition.Y;
下面是NotifyIcon的show菜单的源码

C# code
private void ShowContextMenu(){    if ((this.contextMenu != null) || (this.contextMenuStrip != null))    {        NativeMethods.POINT pt = new NativeMethods.POINT();        UnsafeNativeMethods.GetCursorPos(pt);        UnsafeNativeMethods.SetForegroundWindow(new HandleRef(this.window, this.window.Handle));        if (this.contextMenu != null)        {            this.contextMenu.OnPopup(EventArgs.Empty);            SafeNativeMethods.TrackPopupMenuEx(new HandleRef(this.contextMenu, this.contextMenu.Handle), 0x48, pt.x, pt.y, new HandleRef(this.window, this.window.Handle), null);            UnsafeNativeMethods.PostMessage(new HandleRef(this.window, this.window.Handle), 0, IntPtr.Zero, IntPtr.Zero);        }        else if (this.contextMenuStrip != null)        {            this.contextMenuStrip.ShowInTaskbar(pt.x, pt.y);        }    }} 

读书人网 >C#

热点推荐