1-4 多文档界面处理(3)

2023-01-31 05:01:36

5. 通过类的属性进行数据传值

    此次案例我们改变本节案例(1)数据传值的方法,通过建立类的属性将数据传递过去。

 

u 实验步骤(1):

    为传值目标窗口FORM3定义相关属性信息如下:

小实验: Form3目标传值窗体属性定义以及Load加载事件源代码:

public partial class Form3 : Form

    {

        public Form3()

        {

            InitializeComponent();

        }

        //建立私有变量

        private string some_name, email_address, topic, option;

        //属性姓名

        public string SomeName

        {

            get

            {

                return some_name;

            }

            set

            {

                some_name = value;

            }

        }

        //属性电子邮件

        public string Someemail

        {

            get

            {

                return email_address;

            }

            set

            {

                email_address = value;

            }

        }

        //属性主题

        public string Sometopic

        {

            get

            {

                return topic;

            }

            set

            {

                topic = value;

            }

        }

        //属性意见

        public string Someoption

        {

            get

            {

                return option;

            }

            set

            {

                option = value;

            }

        }

        private void Form3_Load(object sender, EventArgs e)

        {

            listBox1.Items.Add(SomeName);

            listBox1.Items.Add(Someemail);

            listBox1.Items.Add(Sometopic);

            listBox1.Items.Add(Someoption);

        }

}

 
u 实验步骤(2):

    修改录入数据窗口Form2的button1_Click事件:

小实验: 修改后Form2的button1_Click事件源代码:

private void button1_Click(object sender, EventArgs e)

        {

            if (textBox1.Text == "" || textBox2.Text == "")

            {

                MessageBox.Show("姓名,或者邮件信息禁止为空!", "信息提示");

            }

            else

            {

                this.Hide();

                Formcc2 childForm2 = new Formcc2();

                childForm2.SomeName = textBox1.Text;

                childForm2.Someemail = textBox2.Text;

                childForm2.Sometopic = comboBox1.SelectedItem.ToString();

                childForm2.Someoption = richTextBox1.Text;

                //原来的代码内容:childForm3.Show();

                //下面是更改后的代码内容

                childForm2.MdiParent = this.MdiParent;

                childForm2.Show();

            }

        }

1-5  菜单和菜单组件

u  本节学习目标:

n 了解菜单栏、主菜单和子菜单三个概念
n 掌握菜单的快捷方式操作
n 掌握菜单分割条设置
n 学习菜单导航的实际应用

1-5-1 简介

菜单是软件界面设计的一个重要组成方面。它描述着一个软件的大致功能和风格。所以在程序设计中处理好、设计好菜单,对于一个软件开发是否成功有着比较重要的意义。菜单的本质就是提供了将命令分组的一致方法,使得用户易于访问,通过支持使用访问键启用键盘快捷方式,达到快速操纵软件系统的目的。

菜单从分类来说,可以分为菜单栏、主菜单和子菜单三个概念。如图1-26所示:

图1-26  菜单栏、主菜单与子菜单

1-5-2  菜单的实践操作

1.案例学习:建立简单的菜单

(1)建立winform窗体并从工具箱的菜单和工具栏中拖放一个MenuStrip控件到窗体上。如图1-27所示:

图1-27  拖放一个MenuStrip控件到窗体上
(2)可以直接点击MenuStrip控件填写主菜单及子菜单名称,但是需要注意菜单命名时候避免直接录入汉字的问题。因为如果直接键入汉字命名菜单,则该菜单项的Name属性将出现汉字,不利于C#编程。如图1-28所示。

图1-28  直接的中文命名不利于程序开发
虽然上述设计不会出现代码错误,但是建议采用点击MenuStrip控件,选择该控件的Items属性,在展开的项目集合编辑器中直接设置的办法。如图1-29为打开Items属性后的项目集合编辑器。

图1-29  打开items属性后的项目集合编辑器
(3)如果在命名时候在Text属性处键入“文件(&F)”,将会产生“文件(F)”的效果,&将被认为是快捷键的字符。运行时候为alt+f键执行。同理,子菜单在命名时候可以相同的效果。如图1-29中的Text属性所示。

(4)设置每个菜单项的ShortCuTKEys属性。每个菜单项都有一个ShortCutKeys的属性,该项属性为用户自定义的快捷菜单组合键设置项。如图1-30所示,但注意在进行设置时候一方面要根据windows操作系统的常用快捷菜单设置,如退出一般是(alt+E),打开一般是(ctrl+O)等,另一方面至少需要一项修饰符和键的组合,否则将出错。

图1-30  设置菜单的快捷键
(5)在需要进行分割的时候,可以选择Separator选项进行功能性的分割,如图1-31所示。

图1-31  为菜单设置分割条

(6)最后形成菜单效果如图1-32所示

图1-32  菜单最后效果

相关文章