tab键、快捷键、默认按钮、小数点输入的使用--四则运算

1. 窗体Tab键的顺序设置

选中窗体-视图-tab键顺序

label不适用tab键

2. 热键设置和快捷键设置

热键:无论光标在哪都可以

快捷键:出现界面后才能按

添加label

更改label的Text属性改为:热键关闭&C

当按下Alt+C时,Close按钮获得焦点【本应该是热键关闭(C)这个label获得焦点,但是label不能使得光标停留,因此光标自动跳转到label的下一个控件上】

当按下Alt+G时,相当于直接点击了关闭(G)按钮

3. ComboBox

不让用户输入,修改DropDownStyle为DropDownList

如果想要其显示默认值,则在Form_load里面为其SelectedIndex赋值

4. 选择默认按钮

选中form,在其属性AccpetButton里面选择相应的按钮

四则运算的代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 四则运算器
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Resize(object sender, EventArgs e)
        {
            //目标:点击最大化,窗口大小不变或者使得最大化的按钮失效
            //触发的是最大化按钮
            if(this.WindowState == FormWindowState.Maximized)
            {
                //设置窗口的大小为正常大小
                this.WindowState = FormWindowState.Normal;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("快捷键Alt+G,Window is closing");
            this.Close();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("快捷键Alt+C,Window is closing");
            this.Close();
        }

        private void txtNum_KeyPress(object sender, KeyPressEventArgs e)
        {
            //触发该事件的控件,通过sender转换成严控件
            TextBox currentTxt = sender as TextBox;

            if(e.KeyChar < '0' || e.KeyChar > '9')
            {
                //阻止输入
                e.Handled = true;
            }

            //让用户能输入退格键,其ASCII是8
            if(e.KeyChar == 8)
            {
                e.Handled = false;
            }

            //让用户可以输入小数点,小数点ASCII为46
            if(e.KeyChar == 46)
            {
                //检测是否已经输入小数点,么有找到则返回-1
                if(currentTxt.Text.IndexOf(".") == -1)
                {
                    //小数点不能出现在第一位
                    if(currentTxt.SelectionStart > 0)
                    {
                        e.Handled = false;
                    }
                   
                }
                
            }

            //MessageBox.Show(((int)(e.KeyChar)).ToString());


        }

        private void btnEqual_Click(object sender, EventArgs e)
        {
            double num1 = Convert.ToDouble(txtNum1.Text);
            double num2 = Convert.ToDouble(txtNum2.Text);
            //C#特有
            switch(cboOperator.Text)
            {
                case "+":
                    lbResult.Text = (num1 + num2).ToString();
                    break;
                case "-":
                    lbResult.Text = (num1 - num2).ToString();
                    break;
                case "*":
                    lbResult.Text = (num1 * num2).ToString();
                    break;
                case "/":
                    lbResult.Text = (num1 / num2).ToString();
                    break;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            cboOperator.SelectedIndex = 0;
        }
    }
}

  

原文地址:https://www.cnblogs.com/my-cat/p/7268212.html