winform2

发布于:2024-07-05 ⋅ 阅读:(16) ⋅ 点赞:(0)

 12.TabControl

导航控制条
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 zhiyou_winform_TabControl
{

    /*
MultiLine,是否允许多行选项卡
AlignMent,控制选项卡的显示位置,可以在TabControl的上、下、左、右显示
Appearance,控制选项卡的外观
ItemSize,控制选项卡的高度和宽度(注意不是TabControl的宽和高)
ItemSize的宽度设置后还需要设置SizeMode,否则选项卡的宽度不变,
 只有高度随设定的高度调整
     */
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            //添加一个选项
            AddTabPage();
            //设置当前选项卡默认的选项
            tabControl1.SelectedIndex = 2;
            //选项卡绑定触发事件
            tabControl1.TabPages[0].Enter += tabPage1_Event;
            tabControl1.TabPages[1].Enter += tabPage2_Event;

            //tabControl绑定事件
            tabControl1.Selected += TabControlEventHandler;

        }

        //手动添加选项卡
        private void AddTabPage(){
            // 通过代码添加一个简单TabPage
            TabPage tab1 = new TabPage();
            tab1.Text = "选项卡";
            tab1.Name = "tp1";
            tab1.BackColor = Color.Orange;
            if (!tabControl1.TabPages.ContainsKey(tab1.Name))//如果有就不再添加
            {
                tabControl1.TabPages.Add(tab1);
              
            }
        }
        //手动删除选项卡
        private void RemoveTabPage() {
            tabControl1.TabPages.Remove(tabPage1);//方法1
            tabControl1.TabPages.RemoveAt(1);//方法2
            tabControl1.TabPages.RemoveByKey("用户管理");//方法3

        }
        private void tabPages() {

            //所有选项卡的集合
            //  tabControl1.TabPages
            //某个选项卡的集合  可以找到对应选项卡里的子元素
            TabPage firstTabPage = tabControl1.TabPages[0];
            Console.WriteLine(firstTabPage.Controls.Count);
        }

        private void SelectTabPage() {

            //设置选中页的三种方法
            tabControl1.SelectedIndex = 0;
           // tabControl1.SelectedTab = tabPage1;
           // tabControl1.SelectTab(tabPage1);
        }
        private void tabPage1_Event(object sender, EventArgs e)
        {
            MessageBox.Show("111");
            
        }

        private void tabPage2_Event(object sender, EventArgs e)
        {
            MessageBox.Show("222");
        }
    

        public void TabControlEventHandler(object sender, TabControlEventArgs e)
        {

            MessageBox.Show("TabControl");
        }
    }
}

  13.窗体传值


        //方式一: 使用公共静态字段传值   双向传值
        //静态字段当类创建时 会一直在内存中 存在一个
        public static string staticID = "静态字段传值"
        //方式二: 使用公共实例字段传值   双向传值
    
        //方式三   委托(事件)传值    同时传值多个页面

14.DataGridView

namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {

        //dataGridView1.Rows   所有行的集合
        //dataGridView1.Rows[0].Cells  第一行中cell的集合
        //dataGridView1.SelectedRows  选中行的集合
        //dataGridView1.CurrentRow  选中行的对象
        //dataGridView1.CurrentRow.Index 选中行的索引值
        //dataGridView1.Rows.RemoveAt  删除某一行
        //dataGridView1.SelectAll();/选择所有行
        //dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[1];
        //dataGridView1.Columns  所有列的集合
        //dataGridView1.ClearSelection();去除选择
        public Form1()
        {
            InitializeComponent();
        }
        //添加一行数据
        private void button1_Click(object sender, EventArgs e)
        {
            //得到总行数
            int num = dataGridView1.Rows.Count;


            Console.WriteLine(num);
            //向第一行后插入一行数据
            //0代表第一行  1代表插入行的数量
            // dataGridView1.Rows.Insert(num-1, 1);
            dataGridView1.Rows.Add(1);
            //写第所有行第一列数据//插入显示序号
            this.dataGridView1.Rows[num - 1].Cells[0].Value = num;
            //写第一行第二列数据//插入性别
            this.dataGridView1.Rows[num - 1].Cells[1].Value = "aa";
            //写第一行第三列数据//插入性别
            this.dataGridView1.Rows[num - 1].Cells[2].Value = "bb";
            //写第一行第四列数据//插入班级
            this.dataGridView1.Rows[num - 1].Cells[3].Value = "cc";
           

            //去除选择
            //  dataGridView1.ClearSelection();


        }
            

        //获取选择行的内容
        private void button3_Click(object sender, EventArgs e)
        {
            //判断是否选中一行
            if (dataGridView1.SelectedRows.Count == 0)
            return;
            
            
            //获取选择箭头指向的行的索引
            int index = dataGridView1.CurrentRow.Index;
         
            string line = "";

            //this.dataGridView1.Rows[index].Cells.Count 获取当前行有多少个单元格
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                line += dataGridView1.Rows[index].Cells[i].Value.ToString();
            }
            Console.WriteLine(line);


           


        }
        //获取所有行的内容
        private void button4_Click(object sender, EventArgs e)
        {
            string all_data = "";
            for (int i = 0; i < dataGridView1.Rows.Count-1; i++)//行循环
            {
                for (int j = 0; j < dataGridView1.Columns.Count; j++) //列循环
                {
                   all_data += dataGridView1.Rows[i].Cells[j].Value.ToString();
                   
                }
            }
            Console.WriteLine(all_data);

        }
       
        //删除选择的一行
        private void button5_Click(object sender, EventArgs e)
        {
            //判断是否选中一行
            if (dataGridView1.SelectedRows.Count == 0)
                return;
            //删除一行
            dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);

        }
        //删除多行
        private void button6_Click(object sender, EventArgs e)
        {
            //dataGridView1.SelectedRows 选择的行 集合
            foreach (DataGridViewRow row in dataGridView1.SelectedRows)
            {
                if (!row.IsNewRow)
                {
                    dataGridView1.Rows.Remove(row);
                }
            }

        }

        //选中单元格
        private void button9_Click(object sender, EventArgs e)
        {
            //CurrentCell
            dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[1];
        }
        //删除行
        private void button7_Click(object sender, EventArgs e)
        {
            //删除所有行
            dataGridView1.Rows.Clear();
        }
    }
}

15.DataGridView数据源绑定

数据模型类

 internal class People
    {

        public string PeopleName { get; set; }
        public string PeopleAge { get; set;}
        public string PeopleHeight { get; set;}
        public string PeopleWeight { get; set; }
        public string PeopleNumber { get; set; }


     
    }


    public partial class Form1 : Form
    {
        // BindingList 和  dataGridView1.DataSource  绑定的集合
        // 当集合中数据改变时 主动刷新 dataGridView1
        BindingList<People> elist = new BindingList<People>();
        public Form1()
        {
            InitializeComponent();
            //DataSource 数据源
            dataGridView1.DataSource = elist;

        }


        private void button1_Click(object sender, EventArgs e)
        {
            //1.设置list  创建 People实体类 对象
           // List<People> elist = new List<People>();
            for (int i = 0; i <= 9; i++)
            {


                //People people = new People() { };
               // people.PeopleAge = 18;
                //对象初始化器
                elist.Add(new People()
                {
                    PeopleName = "员工" + i,
                    PeopleAge = "12" + i,
                    PeopleHeight = "身高" + i,
                    PeopleNumber = "编号" + i,
                    PeopleWeight = "体重" + i,

                });
            }


            
         
        }


        //zhuijia表格
        private void button2_Click(object sender, EventArgs e)
        {
            //对象初始化器
            elist.Add(new People()
            {
                PeopleName = "张三",
                PeopleAge = "18",
                PeopleHeight = "身高180" ,
                PeopleNumber = "编号20" ,
                PeopleWeight = "体重188" ,

            });
        }

        private void button3_Click(object sender, EventArgs e)
        {
            elist.RemoveAt(0);
        }
    }


网站公告

今日签到

点亮在社区的每一天
去签到