C#Windows窗体界面设计_攻击决策项目_02_设计窗体_04_修订主窗体工具栏和状态栏

Author: binzhouweichao@163.com

Copyright (c) 2013, Liu Xiaojian@BIT,  All Rights Reserved.

Date: 2013-10-23

声明:本程序供参考;允许二次开发,但不允许在毫无更改的情况下占为己有。


A. 修订0201中主窗体的工具栏toolStrip1。


A.1 把第二个Label的Text属性修改为Pause,并设置默认禁用

pauseToolStripLabel:

TextPause
EnabledFalse

A.2 新添加一个Label,Text属性为Stop,命名为stopToolStripLabel,并设置默认禁用

(Name)stopToolStripLabel
TextStop
EnabledFalse

B. 为状态栏StatusStrip添加标签

先添加两个标签,一个用于显示当前的运行状态(Start、Pause、Stop,初始状态为Stop),另一个用于显示是否选出最佳攻击雷点(Waiting,Successful,Failed,初始状态为Waiting)

B.1 首先添加系统当前运行状态的标签

属性修改:

(Name)runStatusLabel
AutoSizeFalse
Size40, 17
TextStop

B.2 其次添加是否选出最佳雷点标签

属性修改:

(Name)attackStatusLabel
AutoSizeFalse
Size70, 17
TextWaiting...


修订后的主窗体界面:



接上篇。

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工具

方法同上。

        //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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值