莆仙生活网
当前位置: 莆仙生活网 > 知识库 >

notifyicon

时间:2024-03-28 02:08:59 编辑:莆仙君

C#中窗体每次加载时托盘中图标的能不能总是一个?

添加notifyIcon控件以后,在每一次退出添加了notifyIcon控件的form窗体之前加上一句
notifyIcon1.Visible = false;
this.Hide();
form2 form = new form2();
form.Show();
然后再在form2中添加notifylcon,如此类推就可以实现在每一个窗体加载之前退出上一个窗体的notifyIcon控件,而在load新窗体的时候又会加载新的notifyIcon控件


c# NotifyIcon控件的问题

因为还原后,窗口的焦点仍然停留在最小化按钮上,与楼上说的“和你WINDOWS界面主题有关”一点关系都没有!要解决这个问题,可以对notifyIcon的MouseClick事件编程,大致代码如下: private void notifyIcon_MouseClick(object sender, MouseEventArgs e) { this.Visible = true; this.WindowState = windowState; notifyIcon.Visible = false; // 将焦点转移到窗体内任意一个控件上,例如,你窗体上的textBox1上 textBox1.Focus( ); }


c# NotifyIcon 的问题

设置窗体属性
windowstate为Minimized
showintaskbar 为 false
在窗体form_load方法添加以下代码
this.Hide();

在notifyicon的mouseclick方法添加以下代码
this.Show();
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;

在窗体form_formclosing方法添加以下代码
if (e.CloseReason == CloseReason.UserClosing)
{
//在窗体上点击关闭按钮程序不会退出,需自己添加退出方法
e.Cancel = true;
this.ShowInTaskbar = false;
this.Hide();
}


C# 关于使用notifyIcon问题

窗体最小化到状态栏
private void MainForm_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
notifyIcon1.Visible = true;
this.Hide();
this.ShowInTaskbar = false;
}
} private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (this.ShowInTaskbar == false)
{
notifyIcon1.Visible = true;
this.ShowInTaskbar = false;
this.Show();
this.Activate();
this.WindowState = FormWindowState.Normal;
}
}


C# notifyIcon里的单击事件怎么判断是鼠标左键还是右键点的

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.CenterToScreen();
}

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && e.Clicks == 1)
{
this.label1.Text = "您单击了鼠标左键!";
}
else if (e.Button == MouseButtons.Right && e.Clicks == 1)
{
this.label1.Text = "您单击了鼠标右键!";
}
}

private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && e.Clicks == 2)
{
this.label1.Text = "您双击了鼠标左键!";
}
else if (e.Button == MouseButtons.Right && e.Clicks == 2)
{
this.label1.Text = "您双击了鼠标右键!";
}
}
}
这样可以判断是鼠标左键还是右键了


在C#中如何把 NotifyIcon 显示 ContextMenuStrip 的事件从右键改成左键?

在NotifyIcon的NotifyIcon1_MouseUp事件中if (e.Button = Windows.Forms.MouseButtons.Left){Type t = typeof(NotifyIcon);MethodInfo mi = t.GetMethod("ShowContextMenu", BindingFlags.NonPublic | BindingFlags.Instance);mi.Invoke(this.notifyIcon1, null);}C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。 C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。

c#使用notifyIcon控件时会在托盘中出现多个图标?

Form1 f1 = new Form1();
//你这里多了一个Form1了,所以会多一个notifyIcon

f1.notifyIcon1.Text = "测试测试测试";
这样改就可以了:
public static void ceshi(Form f1)
{
((Form1)f1).notifyIcon1.Text = "测试测试测试";
}
然后调用的时候使用:
private void Form1_Load(object sender, EventArgs e)
{
Class1.ceshi(this);
}


如何把VB.NET程序最小化到托盘图标区

VB.NET编写托盘程序

托盘程序作为一类特殊的窗体,其快捷图标显示在系统托盘中,窗体本身则隐藏不可见。在.NET之前版本的VB中编写托盘程序是十分困难的,但是VB.NET提供的新的NotifyIcon组件却使VB初学者也能轻松编写一个这样的程序:

新建“Windows应用程序”,设置主窗体Opacity属性为0,FormBorderStyle属性为None,ShowInTaskbar属性为 False,这样窗体将在启动后隐藏。在窗体上放置一个NotifyIcon组件NotifyIcon1,一个ContextMenu(弹出菜单)组件 ContextMenu1,并根据需要为ContextMenu1添加菜单项。

设置NotifyIcon1的ICON属性,这个图标就是应用程序出现在系统托盘中的快捷图标;设置NotifyIcon1的Text属性为“VB.NET托盘程序”,这就是鼠标移动到托盘图标时弹出的文字说明;设置NotifyIcon1的ContextMenu属性为ContextMenu1,也就是右键单击快捷图标时的弹出菜单为 ContextMenu1。OK,按F5运行!

几乎不用编写代码,一个托盘程序就这样轻松实现了。


C# Shell_NotifyIcon隐藏托盘图标

首先要找到需要隐藏的程序的句柄。
NOTIFYICONDATA tnid;
tnid.cbSize=sizeof(NOTIFYICONDATA);
tnid.hWnd=hwnd;
tnid.uID=uID;
tnid.uFlags=NIF_ICON|NIF_TIP|NIF_MESSAGE;
tnid.uCallbackMessage=MYWM_NOTIFYICON;
tnid.hIcon=hicon;
if(lpszTip)
lstrcpy(tnid.szTip,lpszTip);
else
tnid.szTip[0]='\0';
return Shell_NotifyIcon(NIM_ADD,&tnid);
可以尝试根据NOTIFYICONDATA这个结构去做。