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();
    

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

    警告:如果您恶意转载本人文章,则您的整站文章,将会变为我的原创作品,请相互尊重!
  • 相关阅读:
    PowerDesigner快捷键
    Android 的开源电话/通讯/IM聊天项目全集
    Android ContentProvider完整案例
    Android中观察者模式的升入理解
    Android中Socket大文件断点上传
    Storm概念学习系列之Tuple元组(数据载体)
    开始使用storm
    Storm概念学习系列之storm的功能和三大应用
    Storm概念学习系列之storm的特性
    Storm概念学习系列之storm核心组件
  • 原文地址:https://www.cnblogs.com/LyShark/p/13157862.html
Copyright © 2011-2022 走看看