用C#编写了一个服务, 怎么让它在托盘上出现一个图标,当点击这个图标时,显示出一个窗体?

liukaiii 2003-10-20 05:53:40
用C#编写了一个服务, 怎么让它在托盘上出现一个图标,当点击这个图标时,显示出一个窗体?

我是在onStart中加入了一个NotifyIcon,指定属性.
在工程中加入了一个windows窗体.
在NotifyIcon事件中显示该窗体,但是总是不成功.
该怎么办呢?
...全文
588 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgc 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 mail_dcb2 的回复:]
试在onstart中启动一个线程show应用程序窗体?
[/Quote]

我试过,不行!
liduke 2003-11-04
  • 打赏
  • 举报
回复
我的想法是有些像sql服务那样

1、定义一个服务(具体就不说了)
2、定义一个线程来控制服务的启动等功能。
3、定义一个窗体,加上NotifyIcon和右键菜单
4、菜单中定义几项来控制服务的功能
pacman1891 2003-11-04
  • 打赏
  • 举报
回复
你可以把图标和控制窗体部分做成独立的,通过网络与服务连结,现在很多软件都是这样
xuu27 2003-11-04
  • 打赏
  • 举报
回复
可以写个服务控制service control,然后把它作成托盘阿
CSTerry 2003-10-31
  • 打赏
  • 举报
回复
Mark
ivt 2003-10-31
  • 打赏
  • 举报
回复
找我,我有VB。net的代码,没有在C#中做过,但我的服务是C#做的,
没时间去转成C#代码。能做到控制服务的启动停止等等。
一下子说不清楚
liukaiii 2003-10-31
  • 打赏
  • 举报
回复
在服务设计界面中加入一个菜单,没法编辑
未将对象引用设置到对象实例
你是怎么编辑的
mail_dcb2 2003-10-29
  • 打赏
  • 举报
回复
试在onstart中启动一个线程show应用程序窗体?
流梓 2003-10-29
  • 打赏
  • 举报
回复
/// <summary>
/// 在窗体最大最小时接收事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Resize(object sender, System.EventArgs e)
{
//如果窗体最小化,哪么就隐藏窗体
if (this.WindowState == FormWindowState.Minimized)
{
this.Visible = false;
}
}

/// <summary>
/// 上下文菜单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void menuItem1_Click(object sender, System.EventArgs e)
{
//显示窗体
this.Visible=true;
//将窗体显示为默认状态
this.WindowState=FormWindowState.Normal;
}

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
//是否响应窗体关闭事件
e.Cancel=true;
//隐藏窗体
this.Visible=false;
}
jinbao 2003-10-29
  • 打赏
  • 举报
回复
在NotifyIcon控件的Icon属性设置为一个图标文件:
接下来开始编辑ContextMenu控件,添加菜单的内容:
在最小的事件中使窗体隐藏!this.Visible=true;
在form的showintaskbar设为True,程序不会出现任务栏在。
onstart中启动一个线程show应用程序窗体
liukaiii 2003-10-28
  • 打赏
  • 举报
回复
UP
liukaiii 2003-10-27
  • 打赏
  • 举报
回复
有没有谁试过,在服务中启动一个应用程序能不能行呢?
wzt226 2003-10-26
  • 打赏
  • 举报
回复
在Load事件中
this.hide
在notifyicon中的click事件中
this.show
LesterYu 2003-10-26
  • 打赏
  • 举报
回复
可以做一个“服务管理控制器”,和服务本身分离,就像SQL Server 服务管理器那样。
mynull 2003-10-26
  • 打赏
  • 举报
回复
实际另外需要一个带托盘的应用程序,该程序负责启动 停止你的服务,是2个独立的程序。
dzq138 2003-10-23
  • 打赏
  • 举报
回复
还是C++实现的效果好...
C#嘛,现关注中...
wuyeniao 2003-10-23
  • 打赏
  • 举报
回复
服务和界面程序交互
liukaiii 2003-10-23
  • 打赏
  • 举报
回复
还有没有其它的方法呢?
liukaiii 2003-10-22
  • 打赏
  • 举报
回复
楼上的这个也许行
rockrabbit 2003-10-22
  • 打赏
  • 举报
回复
呵呵,这个东西我也想知道。比如,SQL Server的服务和其企业管理器,不就是这样子的吗?

我想,正确的应该是这样:服务起来以后,调用另外一个托盘程序(可能是Exe程序)。而在托盘程序里面实现最小化到右下角。具体做我就不会了,关注。
加载更多回复(19)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧