前言
這里給出教程原文地址。
該項目已經放在github上托管。
發布版已經分享到百度網盤
菜單操作(續)
接着節前一章節的內容,我們繼續完善菜單欄的功能。
我們首先,先完善Rank的選項,我們希望我們的效果是在我們點擊Rank后,能彈出一個窗口,上面顯示記錄;那么我們就需要建立一個新的窗口,在右側找到解決方案資源管理器,右擊MineSweeper項目名,選擇添加,如圖所示:
找到右下方的屬性面板,修改一些屬性:
- 將新建的窗口Icon屬性修改為掃雷的圖標。
- 將MaximizeBox屬性修改為False。
- 將Name屬性修改為Form_Rank。
- 將BackColor屬性修改為White。
- 將Text屬性修改為MineSweeper。
- 將FormBorderStyle屬性改為FixedSingle。
接着在Rank窗口上做如下操作:
- 在左邊工具箱面板下公共控件中找到Label控件,雙擊添加到窗口中,Text屬性修改為初級:,並移動到合適的位置(中級和高級同理)。
- 在左邊工具箱面板下公共控件中找到textBox控件,雙擊添加到窗口中,Name屬性修改為TextBox_Beginner,並移動到合適的位置(中級和高級同理)。
- 在左邊工具箱面板下公共控件中找到Button控件,雙擊添加到窗口中,Text屬性修改為重置,Name屬性改為Reset,並移動到合適的位置(取消同理,Name改為Cancel)。
效果如下:
現在我們又有三個數據初級記錄,中級記錄,高級記錄需要保存下來,雙擊Settings,做如下修改:
分別雙擊重置按鈕和取消按鈕,進入其代碼區,進行如下修改:
private void Reset_Click(object sender, EventArgs e)
{
Properties.Settings.Default.beginner = 999999999;
Properties.Settings.Default.intermediate = 999999999;
Properties.Settings.Default.expert = 999999999;
Properties.Settings.Default.Save();
this.TextBox_Beginner.Text = "999999999";
this.TextBox_Importmediate.Text = "999999999";
this.TextBox_Export.Text = "999999999";
}
private void Cancel_Click(object sender, EventArgs e)
{
this.Close();
}
我們希望Form_Rank窗口在彈出時,便顯示數據,所以需要在對其進行初始化:
public Form_Rank()
{
InitializeComponent();
this.TextBox_Beginner.Text = string.Format("{0}", Properties.Settings.Default.beginner);
this.TextBox_Importmediate.Text = string.Format("{0}", Properties.Settings.Default.intermediate);
this.TextBox_Export.Text = string.Format("{0}", Properties.Settings.Default.expert);
}
現在Form_Rank窗口已經做的差不多了,現在需要在按下菜單欄中的Rank,跳出此窗口,並且此Form_Rank窗口出現在Sweeper窗口的正中央。回到Sweeper.cs,雙擊菜單欄中的Rank,進入其代碼區,做如下修改:
private void RankRToolStripMenuItem_Click(object sender, EventArgs e)
{
Form_Rank k = new Form_Rank();
int h = (this.ClientSize.Height - k.ClientSize.Height) / 2;
int w = (this.ClientSize.Width - k.ClientSize.Width) / 2;
k.Show();
k.Location = new Point(this.Location.X + w, this.Location.Y + h); //控制位置
}
運行后效果如下:
對於聲音Audio,我們需要把聲音設置保存到Settings中,如下圖:
雙擊Audio,進入代碼區,做如下修改:
private void AudioAToolStripMenuItem_Click(object sender, EventArgs e)
{
Properties.Settings.Default.Audio = !Properties.Settings.Default.Audio;
AudioAToolStripMenuItem.Checked = Properties.Settings.Default.Audio;
Properties.Settings.Default.Save();
}
並在程序開始運行時,需要初始化在函數public Form_Main()增加:
AudioAToolStripMenuItem.Checked = Properties.Settings.Default.Audio; //初始化音量設置
運行效果如下:
雙擊菜單Help下的about,進入其代碼區,做一些修改(此處本人做的粗糙,你可以發揮你的想象力,進行更改)
private void AboutAToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Author: pengpeng\n\nVersion:1.0.1", "about");
}
運行后效果如下