WinForm之中BindingNavigator控制元件的使用

hemeinvyiqiluoben發表於2014-12-03

WinForm之中BindingNavigator控制元件的使用
在微軟WinForm中,BindingNavigator控制元件主要用來繫結資料。可以將一個資料集合與該控制元件繫結,以進行資料

聯動的顯示效果。如圖下圖所示:

WinForm之中BindingNavigator控制元件的使用 - Bill  - 已經開始···

那麼,下面我們就來用BindingNavigator控制元件做一下上圖所示的效果。
分析:
該案例以BindingNavigator控制元件為主線,我們定義一個實體類,將實體類以集合的形式顯示在DataGridView中,

同時,將BindingNavigator與DataGridView繫結,將BindingNavigator與文字框顯示資料繫結,將

BindingNavigator與Button控制元件繫結,來演示一個資料聯動的效果,已達到學習BindingNavigator控制元件的目的。

步驟:
首先,在Visual Studio中建立一個WinForm應用程式,在Form1中新增BindingNavigator控制元件,DataGridView控

件,兩個文字框,四個按鈕(分別表示:First,Previuos,Next,Last);

其次,在專案中新增一個使用者類User.cs,該類中有兩個屬性Name和Age;
示例程式碼:
using System;
using System.Collections.Generic;
using System.Text;

namespace BindingDemo
{
    public class User
    {
        public User()
        {

        }
        public User(string name,int age)
        {
            this.Name = name;
            this.Age = age;
        }
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private int age;

        public int Age
        {
            get { return age; }
            set { age = value; }
        }

    }
}

再次,在Form1的程式碼之中,建立User物件,並將物件儲存到List<>泛型集合之中,並顯示到DataGridView中;
關鍵程式碼:
        //建立一個泛型集合
        List<User> users = new List<User>();

        /// <summary>
        /// 窗體載入事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainForm_Load(object sender, EventArgs e)
        {
            //建立使用者
            User zh = new User("張三", 12);
            User li = new User("李四",18);
            User ww = new User("王五",20);
            User ll = new User("劉六",30);
            User X = new User("x-man",30);
            User spaider = new User("spaiderman",25);
            User ironman = new User("ironman",30);
            //將使用者新增到List<>泛型集合的物件中
            users.Add(zh);
            users.Add(li);
            users.Add(ww);
            users.Add(ll);
            users.Add(X);
            users.Add(spaider);
            users.Add(ironman);
 }
再次,建立BindingSource物件,並在窗體載入事件中將BindingNavigator控制元件,與DataGridView,文字框,按

鈕控制元件進行資料繫結,進行資料聯動顯示效果;
示例程式碼: Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace BindingDemo
{
    public partial class MainForm : Form
    {
        //建立一個泛型集合
        List<User> users = new List<User>();
        //
        BindingSource bs = new BindingSource();

        public MainForm()
        {
            InitializeComponent();
        }


        /// <summary>
        /// 窗體載入事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainForm_Load(object sender, EventArgs e)
        {
            //建立使用者
            User zh = new User("張三", 12);
            User li = new User("李四",18);
            User ww = new User("王五",20);
            User ll = new User("劉六",30);
            User X = new User("x-man",30);
            User spaider = new User("spaiderman",25);
            User ironman = new User("ironman",30);
            //將使用者新增到List<>泛型集合的物件中
            users.Add(zh);
            users.Add(li);
            users.Add(ww);
            users.Add(ll);
            users.Add(X);
            users.Add(spaider);
            users.Add(ironman);

            //將泛型集合物件中的值賦給Bindingsource物件的DataSource
            bs.DataSource = users;
            //將資料顯示到DataGridView中去
            this.dgvMain.DataSource = bs;
            //繫結導航
            this.bindingNavigator1.BindingSource = bs;
            //與文字框進行資料繫結
            this.txtName.DataBindings.Add("Text",bs,"Name");
            this.txtAge.DataBindings.Add("Text",bs,"Age");
        }

        //移動到第一行
        private void btnFirst_Click(object sender, EventArgs e)
        {
            this.bs.MoveFirst();
        }

        //移動到前一行
        private void btnPrevious_Click(object sender, EventArgs e)
        {
             this.bs.MovePrevious();
        }

        //移動到下一行
        private void btnNext_Click(object sender, EventArgs e)
        {
            this.bs.MoveNext();
        }

        //移動到最後一行
        private void btnLast_Click(object sender, EventArgs e)
        {
            this.bs.MoveLast();
        }
    }
}

相關文章