按钮与编辑框的使用
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading;using System.Windows.Forms;namespace WindowsFormsApplication1{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){int start = int.Parse(textBox1.Text);int end = int.Parse(textBox2.Text);for (int x = start; x < end; x++){progressBar1.Value += 1;Thread.Sleep(100);}}}}
listView
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Threading;namespace WindowsFormsApplication5{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){ColumnHeader Uid = new ColumnHeader();Uid.Text = "UID";Uid.Width = 100;Uid.TextAlign = HorizontalAlignment.Left;this.listView1.Columns.Add(Uid);ColumnHeader Uname = new ColumnHeader();Uname.Text = "UNAME";Uname.Width = 100;Uname.TextAlign = HorizontalAlignment.Left;this.listView1.Columns.Add(Uname);ColumnHeader Uage = new ColumnHeader();Uage.Text = "UAGE";Uage.Width = 100;Uage.TextAlign = HorizontalAlignment.Left;this.listView1.Columns.Add(Uage);}private void button1_Click(object sender, EventArgs e){// tianjia shujuthis.listView1.BeginUpdate(); //数据更新,UI暂时挂起this.listView1.Items.Clear(); //只移除所有的项。 for (int x = 0; x < 100; x++){ListViewItem lv = new ListViewItem();lv.ImageIndex = x;lv.Text = "UUID -> " + x;lv.SubItems.Add("第2列");lv.SubItems.Add("第3列" + x + "行");this.listView1.Items.Add(lv);}this.listView1.EndUpdate(); //结束数据处理,UI界面一次性绘制。 }}}
MID 窗体设计:
1.首先插入新的子窗体form1,并设置IsMdiContainer = True 属性。
2.zi chuang ti bing she zhi ta men de fu chuang ti
form1.cs
using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApplication3{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){Form2 frm2 = new Form2();frm2.Show();frm2.MdiParent = this;// pai lieLayoutMdi(MdiLayout.TileHorizontal);}}}
ji suan qi
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 练习25{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){comboBox1.SelectedIndex = 0;}private void button1_Click(object sender, EventArgs e){try{int n1 = Convert.ToInt32(textBox1.Text.Trim());int n2 = Convert.ToInt32(textBox2.Text.Trim());string oper = comboBox1.SelectedItem.ToString();switch (oper){case "+": label1.Text = (n1 + n2).ToString();break;case "-": label1.Text = (n1 - n2).ToString();break;case "*": label1.Text = (n1 * n2).ToString();break;case "/": label1.Text = (n1 / n2).ToString();break;default: MessageBox.Show("请选择正确的操作符");break;}}catch{MessageBox.Show("请输入正确的数字");}}}}
浏览器控件的使用
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace _03_浏览器控件{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){string text = textBox1.Text;Uri uri = new Uri("http://"+text);webBrowser1.Url = uri;}}}
ComboBox 控件
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace _04ComboBox{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){//通过代码给下拉框添加数据comboBox2.Items.Add("张三");comboBox2.Items.Add("李四");comboBox2.Items.Add("王五");}private void button2_Click(object sender, EventArgs e){comboBox2.Items.Clear();}}}
ComboBox 日期时间控件
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace _05日期选择器{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//程序加载的时候 将年份添加到下拉框中//获得当前的年份int year = DateTime.Now.Year;for (int i = year; i >= 1949; i--){cboYear.Items.Add(i + "年");}}/// 当年份发生改变的时候 加载月份private void cboYear_SelectedIndexChanged(object sender, EventArgs e){//添加之前应该清空之前的内容cboMonth.Items.Clear();for (int i = 1; i <= 12; i++){cboMonth.Items.Add(i + "月");}}/// 当月份发生改变的时候 加载天private void cboMonth_SelectedIndexChanged(object sender, EventArgs e){cboDays.Items.Clear();int day = 0;//定义一个变量来存储天数//获得月份 7月 12string strMonth = cboMonth.SelectedItem.ToString().Split(new char[] { '月' }, StringSplitOptions.RemoveEmptyEntries)[0];string strYear = cboYear.SelectedItem.ToString().Split(new char[] { '年' }, StringSplitOptions.RemoveEmptyEntries)[0];// MessageBox.Show(cboMonth.SelectedItem.ToString());int year = Convert.ToInt32(strYear);int month = Convert.ToInt32(strMonth);switch (month){ case 1:case 3:case 5:case 7:case 8:case 10:case 12: day = 31;break;case 2:if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)){day = 29;}else{day = 28;}break;default: day = 30;break;}for (int i = 1; i <= day; i++){cboDays.Items.Add(i + "日");}}}}
ListBox 遍历与选中
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace _06ListBox控件{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){listBox1.Items.Add(1);listBox1.Items.Add(200000);}// 遍历选中private void button1_Click(object sender, EventArgs e){for(int x=0;x<listBox1.Items.Count;x++){if (listBox1.SelectedItems.Contains(listBox1.Items[x])){MessageBox.Show(listBox1.Items[x].ToString());}}}}}
实现图片预览:左面ListBox控件,右面是一个pictureBox控件。
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;namespace _07实现点击更换照片{public partial class Form1 : Form{public Form1(){InitializeComponent();}//用来存储图片文件的全路径List<string> list = new List<string>();private void Form1_Load(object sender, EventArgs e){string[] path = Directory.GetFiles(@"C:\", "*.jpg");for (int i = 0; i < path.Length; i++){string fileName = Path.GetFileName(path[i]);listBox1.Items.Add(fileName);//将图片的全路径添加到List泛型集合中list.Add(path[i]);//listBox1.Items.Add(path[i]);}}/// 双击播放图片private void listBox1_DoubleClick(object sender, EventArgs e){pictureBox1.Image = Image.FromFile(list[listBox1.SelectedIndex]);}}}
双击播放音乐:
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;using System.Media;namespace _08双击播放音乐{public partial class Form1 : Form{public Form1(){InitializeComponent();}//存储音乐文件的全路径List<string> listSongs = new List<string>();private void Form1_Load(object sender, EventArgs e){string[] path = Directory.GetFiles(@"C:\Music", "*.wav");for (int i = 0; i < path.Length; i++){string fileName = Path.GetFileName(path[i]);listBox1.Items.Add(fileName);//将音乐文件的全路径存到泛型集合中listSongs.Add(path[i]);}}private void listBox1_DoubleClick(object sender, EventArgs e){SoundPlayer sp = new SoundPlayer();sp.SoundLocation=listSongs[listBox1.SelectedIndex];sp.Play();}}}
打开一个txt文件(打开文件对话框):一个放大了的textbox
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;namespace _10打开对话框{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:\";//设置对话框的文件类型ofd.Filter = "文本文件|*.txt|媒体文件|*.wmv|图片文件|*.jpg|所有文件|*.*";//展示对话框ofd.ShowDialog();//获得在打开对话框中选中文件的路径string path = ofd.FileName;if (path == ""){return;}using (FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read)){byte[] buffer = new byte[1024 * 1024 * 5];//实际读取到的字节数int r = fsRead.Read(buffer, 0, buffer.Length);textBox1.Text = Encoding.Default.GetString(buffer, 0, r);}}}}
保存文件对话框:
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace _11_保存文件对话框{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:\";sfd.Filter = "文本文件|*.txt|所有文件|*.*";sfd.ShowDialog();//获得保存文件的路径string path = sfd.FileName;if (path == ""){return;}using (FileStream fsWrite = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)){byte[] buffer = Encoding.Default.GetBytes(textBox1.Text);fsWrite.Write(buffer, 0, buffer.Length);}MessageBox.Show("保存成功");}}}
字体颜色对话框
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace _12_字体和颜色对话框{public partial class Form1 : Form{public Form1(){InitializeComponent();}/// 字体对话框private void button1_Click(object sender, EventArgs e){FontDialog fd = new FontDialog();fd.ShowDialog();textBox1.Font = fd.Font;}private void button2_Click(object sender, EventArgs e){ColorDialog cd = new ColorDialog();cd.ShowDialog();textBox1.ForeColor = cd.Color;}private void Form1_Load(object sender, EventArgs e){}}}
panel 显示隐藏面板
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace _13_Panel{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;}private void Form1_Load(object sender, EventArgs e){}}}
简易记事本
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace _14_记事儿本应用程序{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//加载程序的时候 隐藏panelpanel1.Visible = false;//取消文本框的自动换行功能textBox1.WordWrap = false;}/// 点击按钮的时候 隐藏panelprivate void button1_Click(object sender, EventArgs e){panel1.Visible = false;}private void 显示ToolStripMenuItem_Click(object sender, EventArgs e){panel1.Visible = true;}private void 影藏ToolStripMenuItem_Click(object sender, EventArgs e){panel1.Visible = false;}List<string> list = new List<string>();/// 打开对话框private void 打开ToolStripMenuItem_Click(object sender, EventArgs e){OpenFileDialog ofd = new OpenFileDialog();ofd.Title = "请选择要打开的文本文件";ofd.InitialDirectory = @"C:\Users\SpringRain\Desktop";ofd.Multiselect = true;ofd.Filter = "文本文件|*.txt|所有文件|*.*";ofd.ShowDialog();//获得用户选中的文件的路径string path = ofd.FileName;//将文件的全路径存储到泛型集合中list.Add(path);//获得了用户打开文件的文件名string fileName = Path.GetFileName(path);//将文件名放到ListBox中listBox1.Items.Add(fileName);if (path == ""){return;}using (FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read)){byte[] buffer = new byte[1024 * 1024 * 5];int r = fsRead.Read(buffer, 0, buffer.Length);textBox1.Text = Encoding.Default.GetString(buffer, 0, r);}}/// 保存对话框private void 保存ToolStripMenuItem_Click(object sender, EventArgs e){SaveFileDialog sfd = new SaveFileDialog();sfd.InitialDirectory = @"C:\Users\SpringRain\Desktop";sfd.Title = "请选择要保存的文件路径";sfd.Filter = "文本文件|*.txt|所有文件|*.*";sfd.ShowDialog();//获得用户要保存的文件的路径string path = sfd.FileName;if (path == ""){return;}using (FileStream fsWrite = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)){byte[] buffer = Encoding.Default.GetBytes(textBox1.Text);fsWrite.Write(buffer, 0, buffer.Length);}MessageBox.Show("保存成功");}private void 自动换行ToolStripMenuItem_Click(object sender, EventArgs e){if (自动换行ToolStripMenuItem.Text == "☆自动换行"){textBox1.WordWrap = true;自动换行ToolStripMenuItem.Text = "★取消自动换行";}else if (自动换行ToolStripMenuItem.Text == "★取消自动换行"){textBox1.WordWrap = false;自动换行ToolStripMenuItem.Text = "☆自动换行";}}private void 字体ToolStripMenuItem_Click(object sender, EventArgs e){FontDialog fd = new FontDialog();fd.ShowDialog();textBox1.Font = fd.Font;}private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e){ColorDialog cd = new ColorDialog();cd.ShowDialog();textBox1.ForeColor = cd.Color;}/// 双击打开对应的文件private void listBox1_DoubleClick(object sender, EventArgs e){//要获得双击的文件所对应的全路径string path = list[listBox1.SelectedIndex];using (FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read)){byte[] buffer = new byte[1024 * 1024 * 5];int r = fsRead.Read(buffer, 0, buffer.Length);textBox1.Text = Encoding.Default.GetString(buffer, 0, r);}}}}
音乐选择框
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;using System.Media;namespace _01复习{public partial class Form1 : Form{public Form1(){InitializeComponent();}//用来存储音乐文件的全路径List<string> listSongs = new List<string>();private void button1_Click(object sender, EventArgs e){OpenFileDialog ofd = new OpenFileDialog();ofd.Title = "请选择音乐文件";ofd.InitialDirectory = @"C:\Users\SpringRain\Desktop\Music";ofd.Multiselect = true;ofd.Filter = "音乐文件|*.wav|所有文件|*.*";ofd.ShowDialog();//获得我们在文件夹中选择所有文件的全路径string[] path = ofd.FileNames;for (int i = 0; i < path.Length; i++){//将音乐文件的文件名加载到ListBox中listBox1.Items.Add(Path.GetFileName(path[i]));//将音乐文件的全路径存储到泛型集合中listSongs.Add(path[i]);}}/// 实现双击播放SoundPlayer sp = new SoundPlayer();private void listBox1_DoubleClick(object sender, EventArgs e){sp.SoundLocation=listSongs[listBox1.SelectedIndex];sp.Play();}/// 点击下一曲private void button3_Click(object sender, EventArgs e){//获得当前选中歌曲的索引int index = listBox1.SelectedIndex;index++;if (index == listBox1.Items.Count){index = 0;}//将改变后的索引重新的赋值给我当前选中项的索引listBox1.SelectedIndex = index;sp.SoundLocation = listSongs[index];sp.Play();}/// 点击上一曲private void button2_Click(object sender, EventArgs e){int index = listBox1.SelectedIndex;index--;if (index < 0){index = listBox1.Items.Count-1;}//将重新改变后的索引重新的赋值给当前选中项listBox1.SelectedIndex = index;sp.SoundLocation = listSongs[index];sp.Play();}private void Form1_Load(object sender, EventArgs e){}}}
标签与随机数:
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace _05_摇奖机应用程序{public partial class Form1 : Form{public Form1(){InitializeComponent();}bool b = false;private void button1_Click(object sender, EventArgs e){if (b == false){b = true;button1.Text = "停止";Thread th = new Thread(PlayGame);th.IsBackground = true;th.Name = "新线程";// th.th.Start();}else//b==true{b = false;button1.Text = "开始";}//PlayGame();}private void PlayGame(){Random r = new Random();while (b){label1.Text = r.Next(0, 10).ToString();label2.Text = r.Next(0, 10).ToString();label3.Text = r.Next(0, 10).ToString();}}private void Form1_Load(object sender, EventArgs e){Control.CheckForIllegalCrossThreadCalls = false;}}}
Socket - client
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using ;using .Sockets;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace Client{public partial class Form1 : Form{public Form1(){InitializeComponent();}Socket socket;private void btnStart_Click(object sender, EventArgs e){try{socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);IPAddress ip = IPAddress.Parse(txtServer.Text);IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(txtPort.Text));socket.Connect(point);ShowMsg("连接成功");Thread th = new Thread(Rec);th.IsBackground = true;th.Start();}catch{ }}void Rec(){while (true){try{byte[] buffer = new byte[1024 * 1024 * 3];int r = socket.Receive(buffer);if (buffer[0] == 0){string s = Encoding.UTF8.GetString(buffer, 1, r-1);ShowMsg(s);}else if (buffer[0] == 1){SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = "所有文件|*.*";sfd.ShowDialog(this);string path = sfd.FileName;using (FileStream fsWrite = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)){fsWrite.Write(buffer, 1, r - 1);}MessageBox.Show("保存成功");}else{ZD();}}catch{ }}}void ZD(){for (int i = 0; i < 500; i++){this.Location = new Point(200, 200);this.Location = new Point(210, 210);}}void ShowMsg(string str){txtLog.AppendText(str + "\r\n");}/// 给服务器发送消息private void btnSend_Click(object sender, EventArgs e){byte[] buffer = Encoding.UTF8.GetBytes(txtMsg.Text);socket.Send(buffer);}private void Form1_Load(object sender, EventArgs e){Control.CheckForIllegalCrossThreadCalls = false;}}}
socket-server
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using ;using .Sockets;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace Server{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void btnStart_Click(object sender, EventArgs e){try{Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);IPAddress ip = IPAddress.Any;//IPAddress.Parse(txtServer.Text);IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(txtPort.Text));socketWatch.Bind(point);ShowMsg("监听成功");//去厕所蹲坑 socketWatch.Listen(10);//不停的接收客户端的连接Thread th = new Thread(Listen);th.IsBackground = true;th.Start(socketWatch);}catch{ }}Dictionary<string, Socket> dicSocket = new Dictionary<string, Socket>();void Listen(object o){Socket socketWatch = o as Socket;while (true){//循环的接收客户端的连接Socket socketSend = socketWatch.Accept();//将客户端的IP地址存储到下拉框中cboUsers.Items.Add(socketSend.RemoteEndPoint.ToString());//将IP地址和这个客户端的Socket放到键值对集合中dicSocket.Add(socketSend.RemoteEndPoint.ToString(), socketSend);ShowMsg(socketSend.RemoteEndPoint.ToString() + ":" + "连接成功");//客户端连接成功后,就应高接收客户端发来的消息Thread th = new Thread(Rec);th.IsBackground = true;th.Start(socketSend);}}void Rec(object o){Socket socketSend = o as Socket;while (true){try{byte[] buffer = new byte[1024 * 1024 * 3];int r = socketSend.Receive(buffer);string str = Encoding.UTF8.GetString(buffer, 0, r);ShowMsg(socketSend.RemoteEndPoint.ToString() + ":" + str);}catch{ }}}void ShowMsg(string str){txtLog.AppendText(str + "\r\n");}private void Form1_Load(object sender, EventArgs e){Control.CheckForIllegalCrossThreadCalls = false;}/// 服务器给客户端发送消息private void btnSend_Click(object sender, EventArgs e){byte[] buffer = Encoding.UTF8.GetBytes(txtMsg.Text);//获得客户端的ipstring ip = cboUsers.SelectedItem.ToString();List<byte> list = new List<byte>();list.Add(0);list.AddRange(buffer);byte[] newBuffer = list.ToArray();dicSocket[ip].Send(newBuffer);}private void btnSelect_Click(object sender, EventArgs e){OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = "所有文件|*.*";ofd.ShowDialog();txtPath.Text = ofd.FileName;}private void btnSendFile_Click(object sender, EventArgs e){string path = txtPath.Text;using (FileStream fsRead = new FileStream(path, FileMode.Open, FileAccess.Read)){byte[] buffer = new byte[1024 * 1024 * 3];int r = fsRead.Read(buffer, 0, buffer.Length);List<byte> list = new List<byte>();list.Add(1);list.AddRange(buffer);byte[] newBuffer = list.ToArray();string ip = cboUsers.SelectedItem.ToString();dicSocket[ip].Send(newBuffer, 0, r+1, SocketFlags.None);}}private void btnZD_Click(object sender, EventArgs e){byte[] buffer = new byte[1];buffer[0] = 2;string ip = cboUsers.SelectedItem.ToString();dicSocket[ip].Send(buffer);}private void button1_Click(object sender, EventArgs e){}}}
GDI 绘制登录验证码需要一个pictureBox1控件
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 使用GDI绘制验证码{public partial class Form1 : Form{public Form1(){InitializeComponent();}/// 点击更换验证码private void pictureBox1_Click(object sender, EventArgs e){Random r = new Random();string str = null;for (int i = 0; i < 5; i++){int rNumber = r.Next(0, 10);str += rNumber;}// MessageBox.Show(str);//创建GDI对象Bitmap bmp = new Bitmap(150, 40);Graphics g = Graphics.FromImage(bmp);for (int i = 0; i < 5; i++){Point p = new Point(i * 20, 0);string[] fonts = { "微软雅黑", "宋体", "黑体", "隶书", "仿宋" };Color[] colors = { Color.Yellow, Color.Blue, Color.Black, Color.Red, Color.Green };g.DrawString(str[i].ToString(), new Font(fonts[r.Next(0, 5)], 20, FontStyle.Bold), new SolidBrush(colors[r.Next(0, 5)]), p);}for (int i = 0; i < 20; i++){Point p1=new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));Point p2=new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));g.DrawLine(new Pen(Brushes.Green), p1, p2);}for (int i = 0; i < 500; i++){Point p=new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));bmp.SetPixel(p.X, p.Y, Color.Black);}//将图片镶嵌到PictureBox中pictureBox1.Image = bmp;}private void Form1_Load(object sender, EventArgs e){}}}
GDI 图形绘制:
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 使用GDI绘制简单的图形{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//一根笔 颜色 一张纸 两点 绘制直线的对象}private void button1_Click(object sender, EventArgs e){//创建GDI对象Graphics g = this.CreateGraphics();// new Graphics();//创建画笔对象Pen pen = new Pen(Brushes.Red);//创建两个点Point p1 = new Point(30, 50);Point p2 = new Point(250, 250);g.DrawLine(pen, p1, p2);}int i = 0;private void Form1_Paint(object sender, PaintEventArgs e){i++;label1.Text = i.ToString();Graphics g = this.CreateGraphics();// new Graphics();//创建画笔对象Pen pen = new Pen(Brushes.Red);//创建两个点Point p1 = new Point(30, 50);Point p2 = new Point(250, 250);g.DrawLine(pen, p1, p2);}private void button2_Click(object sender, EventArgs e){Graphics g = this.CreateGraphics();Pen pen=new Pen(Brushes.Yellow);Size size=new System.Drawing.Size(80,80);Rectangle rec=new Rectangle(new Point(50,50),size);g.DrawRectangle(pen,rec);}private void button3_Click(object sender, EventArgs e){Graphics g = this.CreateGraphics();Pen pen=new Pen(Brushes.Blue);Size size=new System.Drawing.Size(180,180);Rectangle rec=new Rectangle(new Point(150,150),size);g.DrawPie(pen, rec, 60, 60);}private void button4_Click(object sender, EventArgs e){Graphics g = this.CreateGraphics();g.DrawString("百度网盘下载最快", new Font("宋体", 20, FontStyle.Underline), Brushes.Black, new Point(300, 300));}}}
窗体传值:
form1.cs 只有一个 label1 和一个button
using System;using System.Collections.Generic;using ponentModel;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 button1_Click(object sender, EventArgs e){Form2 frm2 = new Form2(ShowMsg);frm2.Show();}void ShowMsg(string s){label1.Text = s; }}}
form2.cs 一个textbox1 和一个button
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 窗体传值{public delegate void DelStr(string s);public partial class Form2 : Form{public DelStr _del;// 子窗口中的del赋值给this._del 父窗体,完成的窗体进程数据传输。public Form2(DelStr del){this._del = del;InitializeComponent();}private void button1_Click(object sender, EventArgs e){// 给父窗体赋值_del(textBox1.Text);}}}
创建xml
using System.Xml;通过代码来创建XML文档XmlDocument doc = new XmlDocument();创建第一个行描述信息,并且添加到doc文档中XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);doc.AppendChild(dec);创建根节点XmlElement books = doc.CreateElement("Books");将根节点添加到文档中doc.AppendChild(books);给根节点Books创建子节点XmlElement book1 = doc.CreateElement("Book");将book添加到根节点books.AppendChild(book1);给Book1添加子节点XmlElement name1 = doc.CreateElement("Name");name1.InnerText = "你好";book1.AppendChild(name1);
写入一个XML
1、创建一个XML文档对象XmlDocument doc = new XmlDocument();2、创建第一行描述信息XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);3、将创建的第一行数据添加到文档中doc.AppendChild(dec);4、给文档添加根节点XmlElement books = doc.CreateElement("Books");5、将根节点添加给文档对象doc.AppendChild(books);6、给根节点添加子节点XmlElement book1 = doc.CreateElement("Book");将子节点book1添加到根节点下books.AppendChild(book1);7、给book1添加子节点XmlElement bookName1 = doc.CreateElement("BookName");8、设置标签中显示的文本bookName1.InnerText = "水浒传";book1.AppendChild(bookName1);XmlElement author1 = doc.CreateElement("Author");author1.InnerText = "<authorName>匿名</authorName>";book1.AppendChild(author1);XmlElement price1 = doc.CreateElement("Price");price1.InnerXml = "<authorName>匿名</authorName>";book1.AppendChild(price1);XmlElement des1 = doc.CreateElement("Des");des1.InnerXml = "好看";book1.AppendChild(des1);Console.WriteLine("保存成功");doc.Save("Book.xml");Console.ReadKey();
追加xml
追加XML文档XmlDocument doc = new XmlDocument();XmlElement books;if (File.Exists("Books.xml")){如果文件存在 加载XMLdoc.Load("Books.xml");获得文件的根节点books = doc.DocumentElement;}else{如果文件不存在创建第一行XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);doc.AppendChild(dec);创建跟节点books = doc.CreateElement("Books");doc.AppendChild(books);}5、给根节点Books创建子节点XmlElement book1 = doc.CreateElement("Book");将book添加到根节点books.AppendChild(book1);6、给Book1添加子节点XmlElement name1 = doc.CreateElement("Name");name1.InnerText = "c#开发大全";book1.AppendChild(name1);XmlElement price1 = doc.CreateElement("Price");price1.InnerText = "110";book1.AppendChild(price1);XmlElement des1 = doc.CreateElement("Des");des1.InnerText = "看不懂";book1.AppendChild(des1);doc.Save("Books.xml");Console.WriteLine("保存成功");Console.ReadKey();
读取XML
加载要读取的XMLXmlDocument doc = new XmlDocument();doc.Load("Books.xml");获得根节点XmlElement books = doc.DocumentElement;获得子节点 返回节点的集合XmlNodeList xnl = books.ChildNodes;foreach (XmlNode item in xnl){Console.WriteLine(item.InnerText);}Console.ReadKey();读取带属性的XML文档XmlDocument doc = new XmlDocument();doc.Load("Order.xml");XpathXmlDocument doc = new XmlDocument();doc.Load("Order.xml");XmlNodeList xnl = doc.SelectNodes("/Order/Items/OrderItem");foreach (XmlNode node in xnl){Console.WriteLine(node.Attributes["Name"].Value);Console.WriteLine(node.Attributes["Count"].Value);}Console.ReadKey();改变属性的值XmlDocument doc = new XmlDocument();doc.Load("Order.xml");XmlNode xn = doc.SelectSingleNode("/Order/Items/OrderItem[@Name='190']");xn.Attributes["Count"].Value = "200";xn.Attributes["Name"].Value = "颜世伟";doc.Save("Order.xml");Console.WriteLine("保存成功");XmlDocument doc = new XmlDocument();doc.Load("Order.xml");XmlNode xn = doc.SelectSingleNode("/Order/Items");xn.RemoveAll();doc.Save("Order.xml");Console.WriteLine("删除成功");Console.ReadKey();获得文档的根节点xmlelement order = doc.documentelement;xmlnodelist xnl = order.childnodes;foreach (xmlnode item in xnl){如果不是items 就continueif (item[]){continue;}console.writeline(item.attributes["name"].value);console.writeline(item.attributes["count"].value);}Console.ReadKey();
增删改查:
XMLDocument#region 对xml文档实现追加的需求XmlDocument doc = new XmlDocument();首先判断xml文档是否存在 如果存在 则追加 否则创建一个if (File.Exists("Student.xml")){加载进来doc.Load("Student.xml");追加获得根节点 给根节点添加子节点XmlElement person = doc.DocumentElement;XmlElement student = doc.CreateElement("Student");student.SetAttribute("studentID", "10");person.AppendChild(student);XmlElement name = doc.CreateElement("Name");name.InnerXml = "我是新来哒";student.AppendChild(name);XmlElement age = doc.CreateElement("Age");age.InnerXml = "18";student.AppendChild(age);XmlElement gender = doc.CreateElement("Gender");gender.InnerXml = "女";student.AppendChild(gender);}else{不存在XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);doc.AppendChild(dec);XmlElement person = doc.CreateElement("Person");doc.AppendChild(person);XmlElement student = doc.CreateElement("Student");student.SetAttribute("studentID", "110");person.AppendChild(student);XmlElement name = doc.CreateElement("Name");name.InnerXml = "张三三李思思";student.AppendChild(name);XmlElement age = doc.CreateElement("Age");age.InnerXml = "28";student.AppendChild(age);XmlElement gender = doc.CreateElement("Gender");gender.InnerXml = "男";student.AppendChild(gender);}doc.Save("Student.xml");Console.WriteLine("保存成功"); #endregion#region 读取XML文档XmlDocument doc = new XmlDocument();doc.Load("OrDER.xml");还是 先获得根节点XmlElement order = doc.DocumentElement;获得根节点下面的所有子节点XmlNodeList xnl = order.ChildNodes;foreach (XmlNode item in xnl){Console.WriteLine(item.InnerText);}XmlElement items = order["Items"];XmlNodeList xnl2 = items.ChildNodes;foreach (XmlNode item in xnl2){Console.WriteLine(item.Attributes["Name"].Value);Console.WriteLine(item.Attributes["Count"].Value);if (item.Attributes["Name"].Value == "手套"){item.Attributes["Count"].Value = "新来哒";}}doc.Save("OrDER.xml"); #endregion#region 使用XPath的方式来读取XML文件XmlDocument doc = new XmlDocument();doc.Load("order.xml");获得根节点XmlElement order = doc.DocumentElement;XmlNode xn = order.SelectSingleNode("/Order/Items/OrderItem[@Name='雨衣']");Console.WriteLine(xn.Attributes["Name"].Value);xn.Attributes["Count"].Value = "woshi new";doc.Save("order.xml");Console.WriteLine("保存成功");#endregionXmlDocument doc = new XmlDocument();doc.Load("order.xml");doc.RemoveAll();不行 根节点不允许删除XmlElement order = doc.DocumentElement;order.RemoveAll();移除根节点下的所有子节点XmlNode xn = order.SelectSingleNode("/Order/Items/OrderItem[@Name='雨衣']");让orderItem去删除属性XmlNode orderItem = order.SelectSingleNode("/Order/Items/OrderItem");获得Items节点XmlNode items = order["Items"];order.SelectSingleNode("/Order/Items");items.RemoveChild(xn);移除当前节点orderItem.RemoveAttributeNode(xn.Attributes["Count"]);xn.Attributes.RemoveNamedItem("Count");doc.Save("order.xml");Console.WriteLine("删除成功");Console.ReadKey();