Copyright (c) 2013, Liu Xiaojian@BIT, All Rights Reserved.
Date: 2013-10-23
声明:本程序供参考;允许二次开发,但不允许在毫无更改的情况下占为己有。
A. 修订0201中主窗体的工具栏toolStrip1。
A.1 把第二个Label的Text属性修改为Pause,并设置默认禁用
pauseToolStripLabel:
Text | Pause |
Enabled | False |
A.2 新添加一个Label,Text属性为Stop,命名为stopToolStripLabel,并设置默认禁用
(Name) | stopToolStripLabel |
Text | Stop |
Enabled | False |
B. 为状态栏StatusStrip添加标签
先添加两个标签,一个用于显示当前的运行状态(Start、Pause、Stop,初始状态为Stop),另一个用于显示是否选出最佳攻击雷点(Waiting,Successful,Failed,初始状态为Waiting)
B.1 首先添加系统当前运行状态的标签
属性修改:
(Name) | runStatusLabel |
AutoSize | False |
Size | 40, 17 |
Text | Stop |
B.2 其次添加是否选出最佳雷点标签
属性修改:
(Name) | attackStatusLabel |
AutoSize | False |
Size | 70, 17 |
Text | Waiting... |
修订后的主窗体界面:
接上篇。
6. 为工具栏这三个按钮添加Click事件
功能为:初始状态下,只有Start启用,Pause、Stop禁用;点击Start后,该工具禁用,状态栏更新,Pause、Stop按钮启用;点击Pause,该工具禁用,更新状态栏,Start启用;点击Stop,该工具禁用,更新状态栏,Start启用。
6.1 Start工具
双击Start标签,自动生成startToolStripLabel_Click()事件函数,自动关联Start标签的Click事件,添加代码:
//6.1 Start工具功能
private void startToolStripLabel_Click(object sender, EventArgs e)
{
this.startToolStripLabel.Enabled = false;//Start工具禁用
this.runStatusLabel.Text = "Start";//更新状态栏为Start
this.pauseToolStripLabel.Enabled = true;//启用Pause工具
this.stopToolStripLabel.Enabled = true;//启用Stop工具
}
方法同上。
//6.2 Pause工具功能
private void pauseToolStripLabel_Click(object sender, EventArgs e)
{
this.pauseToolStripLabel.Enabled = false;//Pause工具禁用
this.runStatusLabel.Text = "Pause";//更新状态栏为Pause
this.startToolStripLabel.Enabled = true;//启用Start工具
}
6.3 Stop工具
方法同上。
//6.3 Stop工具功能
private void stopToolStripLabel_Click(object sender, EventArgs e)
{
this.stopToolStripLabel.Enabled = false;//Stop工具禁用
this.runStatusLabel.Text = "Stop";//更新状态栏为Stop
this.startToolStripLabel.Enabled = true;//启用Start工具
this.pauseToolStripLabel.Enabled = false;//禁用Pause工具
}
6.4. 修订弹出Parms模态窗体条件
只有在Stop状态下才能使能菜单Params Setting。
在Start和Pause工具的Click函数中,添加禁用Params Setting的语句:
//6.4 禁用菜单Params Setting
this.paramsToolStripMenuItem.Enabled = false;
在Stop工具的Click事件函数中,添加启用菜单Params Setting的语句:
//6.4 启用菜单Params Setting
this.paramsToolStripMenuItem.Enabled = true;
6.5 修订弹出Target模态窗体的条件
只有在Pause和Stop状态下才能使能菜单Target Setting。
在Start工具的Click事件函数中,添加禁用Target Setting的语句:
//6.5 禁用菜单Target Setting
this.targetToolStripMenuItem.Enabled = false;
在Pause和Stop工具的Click事件函数中,添加启用Target Setting菜单的语句:
//6.5 启用菜单Target Setting
this.targetToolStripMenuItem.Enabled = true;
这样,修改完后的MainForm.cs代码为:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AttackDecision
{
public partial class MainForm : Form
{
//2.2 声明各子窗体
public WelcomeForm welcomeForm;
public ParamsForm paramsForm;
public TargetForm targetForm;
public MainForm()
{
InitializeComponent();
//2.2 初始化各子窗体
welcomeForm = new WelcomeForm();
paramsForm = new ParamsForm();
targetForm = new TargetForm();
}
//开放相关私有控件的部分属性
//4.2 开放菜单Params Setting的Enabled属性的写权限
public bool paramsSettingEnabled
{
set { paramsToolStripMenuItem.Enabled = value; }
}
//5 开放菜单Target Setting的Enabled属性的写权限
public bool targetSettingEnabled
{
set { targetToolStripMenuItem.Enabled = value; }
}
//3.1 默认隐藏主窗体
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
this.Hide();
//3.2 显示Welcome子窗体
welcomeForm.Show();
}
//4.1 显示paramsForm子窗体
private void paramsToolStripMenuItem_Click(object sender, EventArgs e)
{
paramsToolStripMenuItem.Enabled = false;//该菜单灰色禁用
paramsForm.ShowDialog();//显示子窗体,为模态窗体,使用ShowDialog方法,使得在子窗体隐藏之前,不能对主窗体进行操作。
}
//5 弹出TargetForm子菜单
private void targetToolStripMenuItem_Click(object sender, EventArgs e)
{
targetToolStripMenuItem.Enabled = false;//Target Setting菜单灰色禁用
targetForm.ShowDialog();//显示TargetForm子窗体
}
//6.1 Start工具功能
private void startToolStripLabel_Click(object sender, EventArgs e)
{
this.startToolStripLabel.Enabled = false;//Start工具禁用
this.runStatusLabel.Text = "Start";//更新状态栏为Start
this.pauseToolStripLabel.Enabled = true;//启用Pause工具
this.stopToolStripLabel.Enabled = true;//启用Stop工具
//6.4 禁用菜单Params Setting
this.paramsToolStripMenuItem.Enabled = false;
//6.5 禁用菜单Target Setting
this.targetToolStripMenuItem.Enabled = false;
}
//6.2 Pause工具功能
private void pauseToolStripLabel_Click(object sender, EventArgs e)
{
this.pauseToolStripLabel.Enabled = false;//Pause工具禁用
this.runStatusLabel.Text = "Pause";//更新状态栏为Pause
this.startToolStripLabel.Enabled = true;//启用Start工具
//6.4 禁用菜单Params Setting
this.paramsToolStripMenuItem.Enabled = false;
//6.5 启用菜单Target Setting
this.targetToolStripMenuItem.Enabled = true;
}
//6.3 Stop工具功能
private void stopToolStripLabel_Click(object sender, EventArgs e)
{
this.stopToolStripLabel.Enabled = false;//Stop工具禁用
this.runStatusLabel.Text = "Stop";//更新状态栏为Stop
this.startToolStripLabel.Enabled = true;//启用Start工具
this.pauseToolStripLabel.Enabled = false;//禁用Pause工具
//6.4 启用菜单Params Setting
this.paramsToolStripMenuItem.Enabled = true;
//6.5 启用菜单Target Setting
this.targetToolStripMenuItem.Enabled = true;
}
}
}
项目代码:
http://yunpan.cn/QbawaU5IHRhCG