zoukankan      html  css  js  c++  java
  • C# WinForm 界面控件

    按钮与编辑框的使用

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    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 System.ComponentModel;
    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 shuju
                this.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 lie
                LayoutMdi(MdiLayout.TileHorizontal);
            }
        }
    }
    

    ji suan qi

    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 练习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 System.ComponentModel;
    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 System.ComponentModel;
    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 System.ComponentModel;
    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月 12
                string 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 System.ComponentModel;
    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 System.ComponentModel;
    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 System.ComponentModel;
    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 System.ComponentModel;
    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 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 _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 System.ComponentModel;
    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 System.ComponentModel;
    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 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 _14_记事儿本应用程序
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                //加载程序的时候 隐藏panel
                panel1.Visible = false;
                //取消文本框的自动换行功能
                textBox1.WordWrap = false;
            }
    
            /// 点击按钮的时候 隐藏panel
            private 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:UsersSpringRainDesktop";
                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:UsersSpringRainDesktop";
                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 System.ComponentModel;
    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:UsersSpringRainDesktopMusic";
                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 System.ComponentModel;
    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 System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Net.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 + "
    ");
            }
    
            /// 给服务器发送消息
            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 System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Net.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 + "
    ");
            }
    
            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);
                //获得客户端的ip
                string 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 System.ComponentModel;
    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 System.ComponentModel;
    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 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 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 System.ComponentModel;
    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"))
    {
    	如果文件存在 加载XML
    	doc.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

    加载要读取的XML
    XmlDocument 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");
    Xpath
    
    XmlDocument 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 就continue
          if (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("保存成功");
    #endregion
    
    
    
    XmlDocument 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();
    

    版权声明: 本博客,文章与代码均为学习时整理的笔记,博客中除去明确标注有参考文献的文章,其他文章【均为原创】作品,转载请务必【添加出处】,您添加出处是我创作的动力!

    警告:如果您恶意转载本人文章,则您的整站文章,将会变为我的原创作品,请相互尊重!
  • 相关阅读:
    VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布 Inchroy's Blog 博客频道 CSDN.NET
    编写可丢弃的代码
    c++ using namespace std; 海明威 博客园
    解决MySQL server has gone away
    nginx upstream 调度策略
    (2006, 'MySQL server has gone away') 错误解决 dba007的空间 51CTO技术博客
    Linux IO模型漫谈(2) 轩脉刃 博客园
    redis源码笔记 initServer 刘浩de技术博客 博客园
    MySQLdb批量插入数据
    词库的扩充百度百科的抓取你知道这些热词吗? rabbit9898 ITeye技术网站
  • 原文地址:https://www.cnblogs.com/LyShark/p/13157862.html
Copyright © 2011-2022 走看看