65.9K
CodeProject 正在变化。 阅读更多。
Home

波斯历,带托盘图标

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.71/5 (16投票s)

2008年3月4日

CPOL

2分钟阅读

viewsIcon

75536

downloadIcon

2431

一个显示托盘图标的波斯历。

TrayIconPersianCalendar/traycalande1.jpg

TrayIconPersianCalendar/traycalande2.jpg

介绍 

在本文中,我将教你如何构建一个简单的应用程序,该应用程序创建一个托盘图标并显示一个简单的菜单。 此外,你将学习如何隐藏应用程序的主窗体。 如果你是波斯人,你可以找到将系统日期转换为赫吉拉太阳历(Hejri Shamsi)并在托盘图标中显示日期的代码。在新版本中添加了许多新功能,包括显示日历、安排任务和打印任务。请下载新版本。

使用代码 

要创建一个显示托盘图标的程序,你应该从工具箱中将通知图标控件添加到你的窗体中。 通知图标有一些属性

TrayIconPersianCalendar/traycalande3.jpg

一些重要的属性是

  1. Icon:更改托盘图标中显示的图标
  2. Visible:设置是否显示图标
  3. ContextMenu:为你的托盘图标设置菜单
  4. Text:设置托盘图标的工具提示

我在窗体的构造函数中设置了所有这些属性

public Form1()
        {
            InitializeComponent();
            /* some code there
                    */

            string s = strDay + " " + Convert.ToString(dd) + " " + 
                strMonth + " " + Convert.ToString(yy);
            s += "\n" + d1.ToLongDateString();
            notifyIcon1.Text = s;

            m_menu = new ContextMenu();
            m_menu.MenuItems.Add(0,
                new MenuItem("Exit", new System.EventHandler(Exit_Click)));
            notifyIcon1.ContextMenu = m_menu;
            notifyIcon1.Visible = true;
        }

在这个项目中,我想隐藏我的主窗体。为此,我执行了以下操作

  1. 将窗体的ormWindowState属性设置为Minimized
  2. 将窗体的Opacity属性设置为0
  3. ShowInTaskbar属性设置为false
  4. VisibleChanged添加一个事件处理程序,并添加以下代码
      private void Form1_VisibleChanged(object sender, EventArgs e)
        {
            this.Visible = false;
        }

因此,该程序只显示一个托盘图标,并且主窗体未显示。 因此,为了退出程序,我在托盘图标上创建了一个带有退出项的菜单。 当用户单击退出项时,程序结束。

      protected void Exit_Click(Object sender, System.EventArgs e)
        {
            Close();
        }     

我的程序会根据赫吉拉太阳历中的日期更改托盘图标。为此,我创建了 31 个图标并将它们添加到我的项目的资源中。 我创建了一个窗体图标数组。

            Icon[] Icon_ar = new Icon[32];
            Icon_ar[1] = global::mytray.Properties.Resources.icon1;
            Icon_ar[2] = global::mytray.Properties.Resources.icon2;
            Icon_ar[3] = global::mytray.Properties.Resources.icon3;
            Icon_ar[4] = global::mytray.Properties.Resources.icon4;
            Icon_ar[5] = global::mytray.Properties.Resources.icon5;
            Icon_ar[6] = global::mytray.Properties.Resources.icon6;
            Icon_ar[7] = global::mytray.Properties.Resources.icon7;
            Icon_ar[8] = global::mytray.Properties.Resources.icon8;
            Icon_ar[9] = global::mytray.Properties.Resources.icon9;
            Icon_ar[10] = global::mytray.Properties.Resources.icon10;
            Icon_ar[11] = global::mytray.Properties.Resources.icon11;
            Icon_ar[12] = global::mytray.Properties.Resources.icon12;
            Icon_ar[13] = global::mytray.Properties.Resources.icon13;
            Icon_ar[14] = global::mytray.Properties.Resources.icon14;
            Icon_ar[15] = global::mytray.Properties.Resources.icon15;
            Icon_ar[16] = global::mytray.Properties.Resources.icon16;
            Icon_ar[17] = global::mytray.Properties.Resources.icon17;
            Icon_ar[18] = global::mytray.Properties.Resources.icon18;
            Icon_ar[19] = global::mytray.Properties.Resources.icon19;
            Icon_ar[20] = global::mytray.Properties.Resources.icon20;
            Icon_ar[21] = global::mytray.Properties.Resources.icon21;
            Icon_ar[22] = global::mytray.Properties.Resources.icon22;
            Icon_ar[23] = global::mytray.Properties.Resources.icon23;
            Icon_ar[24] = global::mytray.Properties.Resources.icon24;
            Icon_ar[25] = global::mytray.Properties.Resources.icon25;
            Icon_ar[26] = global::mytray.Properties.Resources.icon26;
            Icon_ar[27] = global::mytray.Properties.Resources.icon27;
            Icon_ar[28] = global::mytray.Properties.Resources.icon28;
            Icon_ar[29] = global::mytray.Properties.Resources.icon29;
            Icon_ar[30] = global::mytray.Properties.Resources.icon30;
            Icon_ar[31] = global::mytray.Properties.Resources.icon31;

在上面的代码中,我从程序集的资源中检索Icon。 检索的优点是,在运行时,你的 EXE 文件包含图标,而不需要外部文件。

notifyIcon1.Icon = Icon_ar[dd];

结论

在这个简单的项目中,你可以找到创建托盘图标、创建菜单和从资源中检索图标的解决方案。

我希望这有用。

© . All rights reserved.