博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#——winform
阅读量:4316 次
发布时间:2019-06-06

本文共 17726 字,大约阅读时间需要 59 分钟。

绑定事件(click,load)示例:

公有属性:

  • name:后台获取前台的对象需要使用Name属性
  • visible:控件是否可见
  • enabled:控件是否可用

为form1绑定click事件,并将主窗体的对象放到静态类中

public partial class Form1 : Form{    public Form1()    {        InitializeComponent();    }    private void button1_Click(object sender, EventArgs e)    {        // 实现弹出窗体2        Form2 form2 = new Form2();        form2.Show();    }    private void Form1_Load(object sender, EventArgs e)    {        // 窗口加载完毕后,将当前窗体对象放入静态类中的静态字段中(资源共享)        Class1._frm1Test = this;    }}

为form2绑定click事件

public partial class Form2 : Form{    public Form2()    {        InitializeComponent();    }    private void button1_Click(object sender, EventArgs e)    {        Form3 form3 = new Form3();        form3.Show();    }}

为form2绑定click事件(关闭所有窗体)

public partial class Form3 : Form{    public Form3()    {        InitializeComponent();    }    private void button1_Click(object sender, EventArgs e)    {        // 实现关闭当前窗体        //this.Close();        // 实现关闭所有窗体(关闭主窗体就会关闭所有的窗体)        Class1._frm1Test.Close();    }}

静态类(静态类中资源共享)

public static class Class1{    public static Form1 _frm1Test;}

绑定事件(click,MouseEnter)示例:

public partial class Form1 : Form{    public Form1()    {        InitializeComponent();    }    /**     * 为按钮1绑定点击事件     */    private void button1_Click(object sender, EventArgs e)    {        // 弹出弹窗        MessageBox.Show("我也爱你,么么哒!");        // 当点击弹窗的确定时,关闭主窗口        this.Close();    }    /**     * 为按钮2绑定鼠标划过事件     */    private void button2_MouseEnter(object sender, EventArgs e)    {        // 给按钮一个新坐标        // 1.获取按钮能够活动的最大宽度,窗体宽度 - 按钮宽度        int maxWidth = this.ClientSize.Width - button2.Width;        // 2.获取按钮能够活动的最大高度,窗体高度 - 按钮高度        int maxHeight = this.ClientSize.Height - button2.Height;        // 3.生成随机坐标        Random r = new Random();        int x = r.Next(0, maxWidth + 1);    // 由于不包括右边的值,所以要+1        int y = r.Next(0, maxHeight + 1);        // 4.给按钮一个随机的坐标        button2.Location = new Point(x,y);    }    private void button2_Click(object sender, EventArgs e)    {        // 弹出弹窗        MessageBox.Show("再见!!!");        // 当点击弹窗的确定时,关闭主窗口        this.Close();    }}

绑定事件(TextChange)示例:

TextBox标签中的属性

  • WordWrap默认为true,自动换行
  • ScrollBars默认为none,是否显示滚动条
    • Horizontal:横向
    • Vertical:纵向
    • Both
  • passwordChar,是否隐藏输入的字符串,可以写入一个*
public partial class Form1 : Form{    public Form1()    {        InitializeComponent();    }    private void textBox1_TextChanged(object sender, EventArgs e)    {        // 将label1标签的文本赋值为textBox1中的文本        label1.Text = textBox1.Text;    }}

组件timer的使用

使用时须将enable设置为true,interval属性为每个多少ms执行一次

public partial class Form1 : Form{    public Form1()    {        InitializeComponent();    }    /**     * timer定时器,每隔1s修改一次时间。到指定的时间播放音乐     */    private void timer1_Tick(object sender, EventArgs e)    {        label1.Text = DateTime.Now.ToString();        if (DateTime.Now.Hour == 23 && DateTime.Now.Minute == 28 && DateTime.Now.Second==22)        {            // 播放音乐            SoundPlayer sp = new SoundPlayer();            sp.SoundLocation = @"E:\Documents\Desktop\1.wav";   // 这个类只能播放wav文件            sp.Play();        }    }    /**     * 当窗体加载时,将时间赋值给label标签     */    private void Form1_Load(object sender, EventArgs e)    {        label1.Text = DateTime.Now.ToString();    }

简单记事本示例:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApp1{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            // 1.获取用户名,密码            string nameText = textName.Text;            string pwdText = textPwd.Text;            // 2.进行校验            if (nameText == "admin" && pwdText == "123")            {                MessageBox.Show("登录成功!");                // 如果登录成功,将用户名密码内些label和text隐藏                label1.Visible = false;                label2.Visible = false;                textPwd.Visible = false;                textName.Visible = false;                button1.Visible = false;                button2.Visible = false;                // 将记事本相关的显示出来                textBox1.Visible = true;                button3.Visible = true;                button4.Visible = true;            }            else            {                MessageBox.Show("用户名或密码输入错误,请重新输入");                // 将用户名密码中的文字清空                textName.Clear();                textPwd.Clear();                // 将焦点整到textName框中                textName.Focus();            }        }        private void button2_Click(object sender, EventArgs e)        {            // 将用户名密码中的文字清空            textName.Clear();            textPwd.Clear();            // 将焦点整到textName框中            textName.Focus();        }        private void button3_Click(object sender, EventArgs e)        {            // 获取button3的文字            string button3Text = button3.Text;            if (button3Text == "自动换行")            {                // 将textBox1改为自动换行                textBox1.WordWrap = true;                // 将button3的文字改为取消自动换行                button3.Text = "取消自动换行";            }            else            {                // 将textBox1改为自动换行                textBox1.WordWrap = false;                // 将button3的文字改为取消自动换行                button3.Text = "自动换行";            }        }        private void button4_Click(object sender, EventArgs e)        {            String path = @"C:\Users\x5456\Desktop\new.txt";            using (FileStream stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))            {                string str = textBox1.Text;                byte[] bytes = Encoding.UTF8.GetBytes(str);                stream.Write(bytes, 0, bytes.Length);            }            MessageBox.Show("保存成功!");        }    }}

单选框的使用

一个from中只能选中一个单选框,如果要分级的话,要使用groupbox容器进行分割

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 WindowsFormsApp2{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            // 判断单选框是否被选中            if (radioStu.Checked || radioTea.Checked)            {                string name = textBox1.Text;                string pwd = textBox2.Text;                if (radioStu.Checked)                {                    if (name == "student" && pwd == "123")                    {                        MessageBox.Show("登录成功!");                    }                    else                    {                        MessageBox.Show("登录失败!");                    }                }                else                {                    if (name == "teacher" && pwd == "123")                    {                        MessageBox.Show("登录成功!");                    }                    else                    {                        MessageBox.Show("登录失败!");                    }                }            }            else            {                MessageBox.Show("请先选择登录身份");            }        }    }}

MDI窗体设计

使用步骤

  • 1)新建几个form窗体
  • 2)找一个窗体,将它的isMdiContainer属性设置为True
  • 3)拖入插件MenuStrip
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 WindowsFormsApp3{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void 显示子窗体ToolStripMenuItem_Click(object sender, EventArgs e)        {            // 创建Form窗体的对象            Form2 form2 = new Form2();            // 告诉它的父窗体是当前窗体            form2.MdiParent = this;            form2.Show();            Form3 form3 = new Form3();            form3.MdiParent = this;            form3.Show();        }        private void 纵向排列ToolStripMenuItem_Click(object sender, EventArgs e)        {            LayoutMdi(MdiLayout.TileVertical);        }        private void 横向排列ToolStripMenuItem_Click(object sender, EventArgs e)        {            LayoutMdi(MdiLayout.TileHorizontal);        }    }}

pictureBox控件的使用

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApp4{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        // 获取目录下的所有文件路径        private string[] strings = Directory.GetFiles(@"F:\快盘\宝岩\没有这幅画、\Lovers");        private int i = 0;        ///         /// form窗体的load事件,当窗体加载完毕,为图片控件加载一个图片        ///         ///         ///         private void Form1_Load(object sender, EventArgs e)        {            // 设置展示格式            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;            // 将第一张图片加载到图片控件中            pictureBox1.Image = Image.FromFile(strings[0]);        }        private void button2_Click(object sender, EventArgs e)        {            if (i >= strings.Length-1)            {                i = -1;            }            pictureBox1.Image = Image.FromFile(strings[++i]);        }        private void button1_Click(object sender, EventArgs e)        {            if (i<=0)            {                i = strings.Length;            }            pictureBox1.Image = Image.FromFile(strings[--i]);        }    }}

WebBrowser控件的使用

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 WindowsFormsApp5{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            string text = textBox1.Text;            webBrowser1.Url = new Uri("http://"+text);        }    }}

ComboBox下拉框控件

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 WindowsFormsApp6{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        /**         * 当form窗体加载完毕时,将年加载         */        private void Form1_Load(object sender, EventArgs e)        {            for (int i = 1996; i < 2099; i++)            {                cboYear.Items.Add(i + "年");            }        }        /**         * 当年的select框改变时,加载月         */        private void cboYear_SelectedIndexChanged(object sender, EventArgs e)        {            // 先将月份中的内容清空            cboMon.Items.Clear();            for (int i=1; i <= 12; i++)            {                cboMon.Items.Add(i+"月");            }        }        /**         * 当月改变时,加载日中的内容         */        private void cboMon_SelectedIndexChanged(object sender, EventArgs e)        {            // 清空日中的内容            cboDay.Items.Clear();            // 获取年月的信息,并将其转换成int型            int year = Convert.ToInt32(cboYear.SelectedItem.ToString().Replace("年",""));            int month = Convert.ToInt32(cboMon.SelectedItem.ToString().Replace("月",""));            int day;            switch (month)            {                case 1:                case 3:                case 5:                case 7:                case 8:                case 10:                case 12: day = 31;                    break;                case 2:                    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)                    {                        day = 29;                    }                    else                    {                        day = 28;                    }                    break;                default: day = 30;                    break;            }            for (int i = 1; i <= day; i++)            {                cboDay.Items.Add(i + "日");            }        }    }}

ListBox控件的使用

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApp7{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        // 1.获取出文件夹下的所有文件        string[] files = Directory.GetFiles(@"F:\快盘\宝岩\没有这幅画、\Lovers","*.jpg");        /**         * 当窗体加载完毕时,加载ListBox中的内容         */        private void Form1_Load(object sender, EventArgs e)        {                        // 2.循环加入ListBox中            foreach (string file in files)            {                // 获取文件名                listBox1.Items.Add(Path.GetFileName(file));            }        }        /**         * 双击时,将图片加载到pictureBox中         */        private void listBox1_DoubleClick(object sender, EventArgs e)        {            // listBox1.SelectedIndex获取选中的索引值            pictureBox1.Image = Image.FromFile(files[listBox1.SelectedIndex]);        }    }}

打开文件对话框

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApp8{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            // 初始化文件对话框            OpenFileDialog ofd = new OpenFileDialog();            // 设置对话框的标题            ofd.Title = "请选择要打开的文本文件";            // 设置对话框可以多选            ofd.Multiselect = true;            // 设置对话框的初始目录            ofd.InitialDirectory = @"C:\Users\x5456\Desktop";            // 设置对话框要求的文件类型            ofd.Filter = "文本文件|*.txt|媒体文件|*.wmv|图片文件|*.jpg|所有文件|*.*";            // 展示对话框            ofd.ShowDialog();            // 获取选中的文件路径            string path = ofd.FileName;            // 如果没选择路径,则结束            if (path=="")            {                return;            }            using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read))            {                // 2.建立一个字节数组,用来一点一点取数据                byte[] bytes = new byte[1024 * 1024 * 5];                // 3.读取5M的数据,返回值为本次读取文件的字节大小                int r = stream.Read(bytes, 0, bytes.Length);                // 4.字节转为字符串                string s = Encoding.UTF8.GetString(bytes, 0, r);                // 5.将返回字符串赋值给textBox                textBox1.Text = s;            }        }    }}

保存文件对话框

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApp9{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            // 创建保存文件对话框对象            SaveFileDialog sfd = new SaveFileDialog();            // 设置标题            sfd.Title = "请选择要保存的路径。";            // 设置初始保存路径            sfd.InitialDirectory = @"C:\Users\x5456\Desktop";            // 设置对话框要求的文件类型            sfd.Filter = "文本文件|*.txt|所有文件|*.*";            // 显示对话框            sfd.ShowDialog();            // 获取保存的路径            string path = sfd.FileName;            // 如果没选路径,直接结束方法            if (path=="")            {                return;            }            // 保存文件            using (FileStream stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))            {                string str = textBox1.Text;                byte[] bytes = Encoding.UTF8.GetBytes(str);                stream.Write(bytes, 0, bytes.Length);            }        }    }}

字体颜色对话框

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 WindowsFormsApp10{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            // 初始化字体对话框对象            FontDialog fd = new FontDialog();            // 将对话框显示出来            fd.ShowDialog();            // 将textBox1的字体改为选择字体            textBox1.Font = fd.Font;        }        private void button2_Click(object sender, EventArgs e)        {            // 初始化颜色对话框对象            ColorDialog cd = new ColorDialog();            // 将对话框显示出来            cd.ShowDialog();            // 将textBox1的字体颜色改为选择颜色            textBox1.ForeColor = cd.Color;        }    }}

panal容器的使用

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 WindowsFormsApp11{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            panel1.Visible = true;        }        private void button2_Click(object sender, EventArgs e)        {            panel1.Visible = false;        }    }}

  

转载于:https://www.cnblogs.com/x54256/p/9026872.html

你可能感兴趣的文章
unity3d 射弹基础案例代码分析
查看>>
thinksns 分页数据
查看>>
os模块
查看>>
LINQ to SQL vs. NHibernate
查看>>
基于Angular5和WebAPI的增删改查(一)
查看>>
windows 10 & Office 2016 安装
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
团队编程项目作业2-团队编程项目开发环境搭建过程
查看>>
Stax解析XML示例代码
查看>>
cookie
查看>>
二级图片导航菜单
查看>>
<Using parquet with impala>
查看>>
07-Java 中的IO操作
查看>>
uclibc,eglibc,glibc之间的区别和联系【转】
查看>>
Java魔法堂:找外援的利器——Runtime.exec详解
查看>>