C# Winform编程自学笔记(四)菜单和菜单组件

简介

因为毕业设计要用到Winform编程,所以计划用一个月的时间学一下,这篇笔记里包含了上机实操和代码理论两个部分,欢迎前来交流~
另:
此篇为C#Winform自学合集第四篇,接上篇(三)

内容一览

  1. 如何建立一个菜单?
  2. 界面美化
  3. 第一单元课后练习
  4. 第一单元笔记总结

(一)如何建立一个菜单?

菜单是软件界面的一个重要组成部分,它描述了一个软件的大致功能和风格,所以在程序设计中处理好,设计好菜单是非常重要的。

菜单的本质就是提供了将命令分组的一致方法,使得用户易于访问,通过支持使用访问键启用键盘快捷方式,达到快速操纵软件系统的目的。

实验目的:
建立一个简单的菜单。

实验步骤:

1)建立Winform窗体并从工具箱的菜单和工具栏中拖放一个MenuStrip控件放到窗体上;

2)可以直接单击MenuStrip控件填写主菜单及子菜单名称,但是需要注意命名菜单时避免直接录入汉字,因为直接键入汉字命名菜单,则该菜单项的Name属性将出现汉字,不利于C#编程。
(也可以在输入text之后更改一下Name,更方便)
3)虽然直接单击MenuStrip控件进行输入也不会出现代码错误,但是选择该控件的Item属性,在展开的项集合编辑器中直接设置的方法更好。

4)如果在命名时在text属性处键入“文件(&N)”将会产生“文件(N)"的效果,&被认为是快捷键的字符,运行时直接按Alt+N键就可以执行。

5)设置每个菜单项的ShortcutKeys属性。每个菜单项都有一个ShortKeys属性,该项属性为用户自定义的快捷菜单组合键设置项。但注意在进行设置时一方面要根据Windows操作系统的常用快捷键菜单设置,如退出一般是Alt+E键,打开一般是Alt+O键,另一方面至少需要一项修饰符和键组合,否则将出错;

6)在进行分割的时候,可以选择Separator选项进行功能性的分割。

(二)窗体界面的美化

窗体美化一般通过第三方皮肤文件完成,动态链接库文件一般是.dll文件,DotNetSkin.dll文件使用的皮肤文件是.skn,而另一个IrisSkin2.dll文件使用的是.ssk文件。**

向工具箱中倒入两个文件,拖拽到界面上即可。

进行编码如下:

public Form1()
{
	InitialzeComponent();
	//SSK皮肤
	string path=Environment.CurrentDiectory+"SSK皮肤\\MacOS\\MacOS.ssk";
	this.skinEnging1.SkinFile="*.ssk";
	//SKN皮肤
	string path = Envionment.CurrentDircetory+"\\skn皮肤\\LE4-DEFAULT.skn";
	this.skinUI1.SkinFile= path;
}

(三)第一单元课后作业

1.建立一个用户登录窗体

基本功能要求:
禁止输入空信息,否则弹出对话框禁止;只有用户名和密码都是admin时,弹出正确对话框,否则弹出对话框显示错误信息。

代码实现:

【Form2全代码】
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 staff2
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }



        private void textBox1_TextChanged(object sender, EventArgs e)
        {
         
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
            {
                MessageBox.Show("消息禁止为空");
                textBox1.Clear();
                textBox2.Clear();
                textBox2.Focus();
            }
            else if (textBox1.Text == "admin" && textBox2.Text == "admin") 
            {
                MessageBox.Show("恭喜您成功登录");
                this.Hide();
            }
            else
            {
                MessageBox.Show("用户名或密码错误\n请重新输入");
                textBox1.Clear();
                textBox2.Clear();
                textBox1.Focus();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            textBox2.Clear();
            textBox1.Focus();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }
    }
}

实验结果:

①单击作业列表
在这里插入图片描述
②选择联系一:用户登录
在这里插入图片描述③输入用户信息
在这里插入图片描述如果输入正确
在这里插入图片描述
如果输入错误
在这里插入图片描述

1.联系ListBox控件

基本功能要求:
1)单击“显示信息”按钮时,下拉列表显示软件部、硬件部、财务部和人事部,并在下面通过Label控件显示行数的统计信息;

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 staff2
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
   
           //向列表添加信息
            this.listBox1.Items.Add("软件部");
            this.listBox1.Items.Add("硬件部");
            this.listBox1.Items.Add("财务部");
            this.listBox1.Items.Add("人事部");
            listBox1.Show();
            //显示行数
            label1.Text = "已经添加了" + listBox1.Items.Count + "条记录.";
            label1.Show();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }
    }
}

实验结果:
在这里插入图片描述在这里插入图片描述
2)单击“插入信息”按钮时,可以在选中的某行后插入新的内容为“插入行”信息,并在下面通过Label控件重新显示行数的统计信息。

先将ListBox的Enable属性设置为FALSE,然后在“插入信息”按钮部分输入以下源代码,将Enable设置为true,然后再一次统计。
【不会,不知道怎么让用户在界面里插入信息】

   private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Enabled = true;
            label1.Text = "已经添加了" + listBox1.Items.Count + "条记录。";
        }

(四)第一单元笔记总结

1.如何设置“单击某项,打开某窗体”?

FormX = newFrom FromX();
newForm.Show();
//如果打开这个新窗体之后想隐藏父窗体,则:
this.hide();

2.如何显示“ListBox”控件的行数?

  //显示行数
        label1.Text = "已经添加了" + listBox1.Items.Count + "条记录.";
        label1.Show();
  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值