绑定事件(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:DocumentsDesktop1.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:Usersx5456Desktop ew.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; /// <summary> /// form窗体的load事件,当窗体加载完毕,为图片控件加载一个图片 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> 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:Usersx5456Desktop"; // 设置对话框要求的文件类型 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:Usersx5456Desktop"; // 设置对话框要求的文件类型 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; } } }