C#基础知识及题目练习 Day13 windows窗体 MDI窗体 Directory ComboBox ComboBox OpenFileDialog 记事本应用

目录

winform控件

一、概述

二、常用属性

eg1:Do you love me?

eg2:动态的显示当前时间:

eg3:跑马灯

eg4:简单记事本NoteBook

eg5:单选和多选

eg6:MDI窗体

eg7、PictureBox上下选择图片

eg8、Directory创建、删除目录

eg9、ComboBox 选择年月日

eg10、ListBox 图片、音频播放器

eg11:综合应用__记事本程序(OpenFileDialogue SaveFileDialogue)



winform控件

一、概述

  • partial:部分类
  • 从窗体切换到后台代码:F7    千千万万不要在窗体上随便双击
  • 在C#中所有的对象都是由类生成的

Form1.Designer.cs:这个文件大家不要去手动修改它,它是由系统自动生成的。

Form1.resx:资源文件    可以制作双语文件

 

  • 窗体程序的入口点也是Main函数
  • 窗体控件的学习,实质就是对该控件的属性和事件的学习。
  • 窗体程序中,弹出对话框使用MessageBox

当双击窗体上的控件时,就会为该控件添加一个默认的事件,默认的即最常用的

事件:可以说是用户的操作,比如说按下键盘,点击鼠标,双击鼠标,鼠标移入,让该控件可以做一些事情

构造函数是用来初始化控件的

 

二、常用属性


Text:显示在控件上的文本
Name:该控件的姓名,在后台代码中,通过Name属性来访问该控件

  • 谁是主窗体:在Main函数中,先把谁new出来,谁就是主窗体。

。。。。。。

注:如何关闭主窗口:

方法一:创建static静态类。

方法二:Application.Exit();

方法三:System.Environment.Exit(0);//彻底关闭

 

MouseEnter:当鼠标指针穿过元素时,会执行事件.

eg1:Do you love me?

当鼠标移入button的时候,我立马改变Button的位置,移出鼠标范围

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("I love you");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("好吧,我投降了!");
        }

        private void button2_MouseEnter(object sender, EventArgs e)
        {
            //找到鼠标可以移动的最大范围
            int fx = this.ClientSize.Width;
            int fy = this.ClientSize.Height;
            int w = button2.Width;
            int h = button2.Height;
            int x = fx - w;
            int y = fy - h;

            Random r = new Random();
            Point p = new Point();//坐标
            p.X = r.Next(0, x);
            p.Y = r.Next(0, y);
            button2.Location = p;


        }
    }

所有知识基本上都是围绕着类,定时器也不例外,Timer类  属性 方法

Enable:控件是否可用
Interval:时间间隔  希望定时器多久执行一次   计时单位是ms   1s=1000ms

Tick事件:事件到了,让定时器做什么,在该事件中实现

获取当前时间:DateTime

Start():启动定时器
Stop():停止定时器


让窗体居中:StarPosition 改成:CenterScreen

 

Timer:在指定的时间间隔内做一些事情

eg2:动态的显示当前时间:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            textBox1.Text = DateTime.Now.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
        }
    }

eg3:跑马灯

关键:timer事件中,将字符串的第一个字符放到最后。 

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            string str = textBox1.Text;
            string tou = str.Substring(0, 1);
            string sub = str.Substring(1, str.Length - 1)+tou;
            textBox1.Text = sub.ToString();
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            timer1.Start();
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            timer1.Stop();
        }
    }

eg4:简单记事本NoteBook

 

窗体1(登录):

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textUser.Text == "admin" && textPwd.Text == "123")
            {
                this.Hide();
                MessageBox.Show("欢迎光临!");
                Form2 f2 = new Form2();
                f2.Show();

            }
            else
            {
                MessageBox.Show("输入错误!");
            }
        }
    }

窗体2(写字板):

public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            textBox1.WordWrap = false;
        }

        private void 自动换行ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.WordWrap = true;
        }

        private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using(StreamWriter sw=new StreamWriter(@"E:\notebook.txt", false, Encoding.Default))
            {
                sw.Write(textBox1.Text);
                MessageBox.Show("保存成功!");
            }
        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }


注:1.让文本框变成密码框:设置textBox1的PasswordChar属性 为 *。

2.将文本框的WordWrap属性设为True----自动换行

eg5:单选和多选

Checked:指示控件是否处于选中状态

默认情况下,单选控件只能被选中一个,用GroupBox进行分组

        private void button1_Click(object sender, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值