社区
C#
帖子详情
请教各位大虾,用C#做的控制台程序,如何使控制台界面窗口在最小化时只显示在屏幕右下角(通知区域)?
renyuang
2003-02-19 01:12:43
用C#做的控制台程序,如何使控制台界面窗口在最小化时只显示在屏幕右下角(通知区域)?
...全文
1241
12
打赏
收藏
请教各位大虾,用C#做的控制台程序,如何使控制台界面窗口在最小化时只显示在屏幕右下角(通知区域)?
用C#做的控制台程序,如何使控制台界面窗口在最小化时只显示在屏幕右下角(通知区域)?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
烤火的鱼
2003-03-01
打赏
举报
回复
将托盘工具拖到窗口中,设置一下托盘的图标就可以了,如果要隐藏主窗口,可以设置窗口的visble属性为flase,在托盘的快捷菜单中用this.Hide()或this.Show()来隐藏/显示主窗口。
cwj007
2003-02-21
打赏
举报
回复
知秋:可以写的详细点吗,先谢了
qqchen79
2003-02-20
打赏
举报
回复
System.Windows.Forms.dll可以手工引用,
Message Loop也可以自己建:
while(true) {
Application.DoEvents();
}
剩余的部分和Windows应用就差不多了。
chenxy2002
2003-02-19
打赏
举报
回复
up,用VB做过
cwj007
2003-02-19
打赏
举报
回复
是不是托盘程序
本文通过向大家介绍一个.Net平台上用C#写的可以停放在任务栏上的图标程序(类似于Flashget、OICQ那种系统托盘图标)来和大
家一起体验一下用C#编程的乐趣。
一、概述:
我这里所指的图标程序是类似于在Windows中经常接触的停放在任务栏上,在后台运行的病毒监视、媒体播放等程序。它们一般都具有
单击显示或隐藏主界面,击右键弹出菜单,当鼠标停在图标上时显示提示信息的功能。
程序主要用到了一下几个类:
System.Windows.Fomrs.NotifyIcon类
System.Windows.Forms.ContextMenu类
System.Windows.Forms.MenuItem类
System.Windows.Forms.Label类
System.Windows.Forms.Timer类
二、程序设计和运行的环境:
(1)微软公司视窗2000服务器版或视窗XP版
(2).Net FrameWrok SDK
三、具体实现步骤:
(1).在Visual Studio下新建一个C#的工程,不妨命名为AnimateSystemTray。图示如下:
(2).现在我们来设计程序的主界面:
先将窗体的Text属性设置为"动画系统图标示例",MaximiseBox、MinimiseBox、ShowInTaskbar属性均设置为False。
再往窗体上添加Label控件、NotifyIcon控件、ContextMenu控件、Timer控件各一个。
将Label控件的Text属性设置为"请右击系统托盘图标";将NotifyIcon控件的Icon属性设置为一个图标文件: ,Text属性
设置为"这是个示例程序!",ContextMenu属性设置为"contextMenu1";接下来开始编辑ContextMenu控件,图示如下:
最后还要在导入两个图标 (Icon1.ico), (Icon2.ico)文件到该项目。
(3).现在我们开始编写代码部分:
首先在我们的类中添加以下数据成员:
private Icon m_Icon1;
private Icon m_Icon2;
private bool m_bFlag;
private bool m_bShowWnd;
修改Form1()函数为:
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
m_bFlag=true;
m_bShowWnd=true;
try
{
m_Icon1 = new Icon("Icon1.ico");//导入图标文件
m_Icon2 = new Icon("Icon2.ico");
}
catch ( Exception e )
{
MessageBox.Show("Error " + e.Message,"Animate Tray - Error");
menuItem2.Enabled = false;
menuItem3.Enabled = false;
}
}
添加menuItem1、menuItem2、menuItem3、m_trayIcon的Click事件,消息处理函数如下:
private void menuItem1_Click(object sender, System.EventArgs e)
{
timer1.Start();//打开计时器
}
private void menuItem2_Click(object sender, System.EventArgs e)
{
timer1.Stop();//停止计时器
}
private void menuItem3_Click(object sender, System.EventArgs e)
{
Application.Exit();//退出应用程序
}
private void m_trayIcon_Click(object sender, System.EventArgs e)
{
if(m_bShowWnd == true)//隐藏主界面
{
this.Visible = false;
m_bShowWnd = false;
}
else//显示主界面
{
this.Visible = true;
m_bShowWnd = true;
}
}
最后还要添加timer1的Tick()函数:
private void timer1_Tick(object sender, System.EventArgs e)
{
if ( m_Icon1 != null && m_Icon2 != null ) //如果两个图标文件都被正确载入
{
//只要timer1被启动,则在两个图标之间不断进行选择变换,实现动画效果
if ( m_bFlag == true )
{
m_trayIcon.Icon = m_Icon2;
m_bFlag = false;
}
else
{
m_trayIcon.Icon = m_Icon1;
m_bFlag = true;
}
}
}
snla
2003-02-19
打赏
举报
回复
控制台程序直接调用一个外部程序就行了
xz_king
2003-02-19
打赏
举报
回复
用一个form ,中间一个textbox ,当做控制台。对输入的命令进行处理。
用c#调Dos命令。
renyuang
2003-02-19
打赏
举报
回复
多谢CharisRc
CharisRc
2003-02-19
打赏
举报
回复
你可以编写一个窗口,用窗口函数实现SysTray的显示,在控制台窗口最小化时调用这个窗口,窗口回调控制台时使用Process组件。这里面的逻辑你自己考虑。
renyuang
2003-02-19
打赏
举报
回复
多谢大哥,看来是没有办法了?
poetc
2003-02-19
打赏
举报
回复
gz
yarshray
2003-02-19
打赏
举报
回复
控制台
应该不支持NotifyICON
应该控制台不能使用System.Windows.Forms命名空间的类
并且也不具备消息虚幻,因此不可以
举例:
在控制台程序的
static void Main(string[] args)
{
入口函式中,你是无法看到Appliction.Run这个执行过程的
也就是说无法掷出消息循环。
C#
For Unity系列之入门篇
有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“
大虾
”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《
C#
For Unity系列之入门篇》配套学习资料链接:...
VC++中可能遇到的问题
T 如何用
程序
控制电源管理设置 Q 我们知道在电源选项 属性 里面可以设置 关闭监视器 1分钟之后,...,从不 关闭硬盘 1分钟之后,...,从不 待机
时
间 1分钟之后,...,从不请问这些设置我怎么用
程序
来实现 比如我...
WEB开发文档2 总结
http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在内存中的图象
显示
到客户端Microsoft IE WebControls下载地址如何在DATAGRID中使用JAVASCRIPT脚本控制DataGrid中连接到下一页
显示
...
CSDN回帖得分大全(近两年)
√ vs2005调用dll的
时
候Initialize()函数返回错误 [VC/MFC 基础类] √ 为什么我创建登陆框之后,... [VC/MFC
界面
] ...√ CFileFind::FindFile 支持通配符么?...√ vc++ 浮动
窗口
联动的实现 [VC/MFC
界面
] ...
安卓版的java
程序
代码
for(char c:array){ if(c==‘h’){ System.out.println(“字符a在字符串中”); } } } } 正确例题 public class Test { public static void main(String[] args) { String str = “abcde”; int ii = str.indexOf(...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章