科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C# Builder实现POP3信箱的监视

C# Builder实现POP3信箱的监视

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文向大家介绍怎样用Borland C# Builder编写一个信箱监视程序。

作者:徐长友 来源:悠游在线 2007年11月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
三、程序实现

  下面我们就不妨着手我们的程序。首先,打开Borland C# builder,新建一个项目,菜单 File->C# Applicaion 项目的名称不妨设为"chkpop3",图示如下:

  [ 相关贴图 ]


  设计主窗口,如下图:

  [ 相关贴图 ]


  主要包括五个文本框,五个标签,三个按钮,一个选择框和一个timer。

  WinForm设置如下:

   text:收取邮件

   startPosition:CenterScreen

   MaximizeBox:false

  三个按钮:

   最小化按钮:最小化窗口,这里就是隐藏主窗口。

   取邮件按钮:实现取得POP3信箱中的邮件数量,并用信息窗口提示。

   应用按钮:保存设置到注册表中

   timer1的功能:完成在一定时间间隔内取POP3信箱中邮件数量。

  1.托盘的实现:

  从tool palette选择组件contextMenu(加两个菜单项,设置和退出)、notifyIcon(text设为:邮箱检测,图标ICON选择一个16x16的小图标即可,contextMenu设为前面加入的contextMenu1,Visible设为true) 这样一个完整的托盘程序就设好了。

  2.用户提示信息的实现:

  新建一窗口WinForm1,把窗体的FormBorderStyle属性设置为None(无边框模式),然后把TopMost属性(总在最上方)属性设置为True,把ShowInTaskbar属性(是否在 Windows 任务栏中显示窗体)设置为False,并在窗体上加上一文字标签,将窗体的背景设置为你想要的图片和合适的大小。最后再放上三个Timer控件,其中,timer1控制窗体滚出的动画,timer2控制窗体停留时间,timer3控制窗体的滚入动画,将它们的Interval属性设置为10,如图:

  [ 相关贴图 ]


  WinForm1代码如下:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace pop3
{
/// <summary>
/// Summary description for WinForm1.
/// </summary>
public class WinForm1 : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Timer timer2;
private System.Windows.Forms.Timer timer3;
private System.Windows.Forms.LinkLabel linkLabel1;
public string str_num;

public WinForm1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose (bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(WinForm1));
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.timer2 = new System.Windows.Forms.Timer(this.components);
this.timer3 = new System.Windows.Forms.Timer(this.components);
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.SuspendLayout();
//
// timer1
//
this.timer1.Interval = 10;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// timer2
//
this.timer2.Interval = 10;
this.timer2.Tick += new System.EventHandler(this.timer2_Tick);
//
// timer3
//
this.timer3.Interval = 10;
this.timer3.Tick += new System.EventHandler(this.timer3_Tick);
//
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.BackColor = System.Drawing.Color.WhiteSmoke;
this.linkLabel1.Location = new System.Drawing.Point(56, 56);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(79, 17);
this.linkLabel1.TabIndex = 0;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "您有新邮件!";
//
// WinForm1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.BackColor = System.Drawing.SystemColors.Info;
this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
this.ClientSize = new System.Drawing.Size(194, 122);
this.Controls.Add(this.linkLabel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "WinForm1";
this.ShowInTaskbar = false;
this.Text = "信息提示";
this.TopMost = true;
this.Load += new System.EventHandler(this.WinForm1_Load);
this.Activated += new System.EventHandler(this.WinForm1_Activated);
this.ResumeLayout(false);
}
#endregion

private void WinForm1_Load(object sender, System.EventArgs e)
{
Screen[] screens = Screen.AllScreens;
Screen screen = screens[0];
this.Location = new Point(screen.WorkingArea.Width - 200, screen.WorkingArea.Height - 30);
this.timer2.Interval = 5000;
}

private void ScrollUp()
{
if(Height < 122)
{
this.Height += 3;
this.Location = new Point(this.Location.X, this.Location.Y - 3);
}
else
{
this.timer1.Enabled = false;
this.timer2.Enabled = true;
}
}

private void ScrollDown()
{
if(Height > 3)
{
this.Height -= 3;
this.Location = new Point(this.Location.X, this.Location.Y + 3);
}
else
{
this.timer3.Enabled = false;
this.Close();
}
}

private void timer1_Tick(object sender, System.EventArgs e)
{
ScrollUp();
}

private void timer2_Tick(object sender, System.EventArgs e)
{
timer2.Enabled = false;
timer3.Enabled = true;
}

private void timer3_Tick(object sender, System.EventArgs e)
{
ScrollDown();
}

public void ScrollShow()
{
this.Width = 194;
this.Height = 0;
this.Show();
this.timer1.Enabled = true;
}

private void WinForm1_Activated(object sender, System.EventArgs e)
{
linkLabel1.Text="您有"+str_num+"封新邮件!";
}

}
}

  具体的实现,可以参考一下网上的一篇文章:《用VC#编写仿MSN Messager的滚动提示窗口》,已经记不清出处了,可以通过这个网址http://yousoft.hi.com.cn/article_view.asp?id=6595浏览。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章