C# winForm程式開機啟動和托盤顯示

來源:互聯網
上載者:User

這段時間一直在學習C#,看了書然後又在網上看了N多大神些的blog,然後自己學著做了一個像QQ托盤表徵圖那樣的小功能的Demo:

        (1)、在視窗上點擊關閉按鈕或者最小化時將托盤顯示;

        (2)、雙擊托盤表徵圖顯示視窗;

        (3)、右鍵點擊托盤表徵圖提供三個菜單選項,“退出”、“隱藏”、“顯示”;

        (4)、程式可以設定開機啟動,隱藏工作列顯示。就這四個小功能。

1、建一個WinForm程式—TestIconForm,將其屬性ShowInTaskbar改為false,這樣程式將不會在工作列中顯示;將MaximizeBox屬性設定為false,屏蔽掉最大化按鈕;把StartPosition屬性改為CerternScreen,這樣程式運行後,視窗將會置中顯示。

2、在工具列中的公用控制項裡,拖入NotifyIcon控制項—testNotifyIcon,這個是程式運行工作列右側通知區域表徵圖顯示控制項。

3、在工具列中的菜單和工具列裡,拖入ContextMenuStrip—testContextMenuStrip,這個控制項是右擊時關聯菜單。

4、右鍵testNotifyIcon選擇屬性,將其屬性ContextMenuStrip改加為testContextMenuStrip,這個時候1和2兩個步驟的兩個控制項就關聯了,用於完成上面(3)功能。

5、右鍵testContextMenuStrip選擇屬性,進入Items,然後點擊“添加”,這裡添加三個菜單選項:exitMenuItem、hideMenuItem、showMenuItem,同時分別將其Text屬性改為:退出、隱藏和顯示。

準備工作就這些,下面是大致代碼:

 

1)、雙擊TestIconForm,即添加Load事件然後

代碼

 private void Form1_Load(object sender, EventArgs e)
{
testNotifyIcon.Icon = new Icon("e:\\MyPicture\\testIcon.ico");
//取得程式路徑
string startup = Application.ExecutablePath;

//class Micosoft.Win32.RegistryKey. 表示Window註冊表中項級節點,此類是註冊表裝
RegistryKey rKey = Registry.LocalMachine;
RegistryKey autoRun = rKey.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
try
{
autoRun.SetValue("BookServer", startup);
rKey.Close();
}
catch (Exception exp)
{
MessageBox.Show(exp.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

添加Form_Closing,SizeChanged事件

代碼

private void Form1_FormClosing(object sender, FormClosingEventArgs e) //關閉按鈕事件
        {
            e.Cancel = true;
            this.Hide();
        }

        private void Form1_SizeChanged(object sender, EventArgs e) //最小化事件按鈕
        {
            this.Hide();
        }

 

2)、給testNotifyIcon添加MouseDoubleClick事件

代碼

private void testNotifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)            // 左鍵雙擊,顯示
{
if (e.Button == MouseButtons.Left)
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.Activate();
}
}

 3)、進入TestIconForm單擊testContextMenuStrip,然後可以看到“退出”、“隱藏”、“顯示”,分別雙擊,添加相應的事件

代碼

private void exitMenuItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("你確定要退出終端服務程式嗎?", "確認", MessageBoxButtons.OKCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
testNotifyIcon.Visible = false;
this.Close();
this.Dispose();
Application.Exit();
}
}

private void showMenuItem_Click(object sender, EventArgs e)
{
this.Hide();
}

private void hideMenuItem_Click(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.Activate();
}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.