<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
DataBindings屬性是很多控制元件都有的屬性,作用有2方面。一方面是用於與資料庫的資料進行繫結,進行資料顯示。另一方面用於與控制元件或類的物件進行資料繫結。這裡主要關注後者。主要用法是將某個物件的某個屬性與指定物件的指定屬性進行關聯.
Label、TextBox等都包含DataBindings屬性,其型別為ControlBindingsCollection,是Binding類的集合。Binding類代表某物件屬性值和某控制元件屬性值之間的簡單系結。如可以將TextBox的Text屬性值繫結到Label的Text屬性值,這樣,當TextBox中的文字被修改的時候,Label的文字也會及時進行修改,如下面的程式碼所示:
Label1.DataBindings.Add("Text",TextBox1,"Text");
Binding類除了可以將物件的屬性繫結到控制元件的屬性之外,還可以將物件列表中當前物件的屬性值繫結到控制元件的屬性。
當使用Binding的建構函式建立範例時,必須指定三項內容:
其中,資料來源可以為:
導航路徑可以為空字串(預設將呼叫資料來源的ToString()方法)、單個屬性名稱或用點分隔的名稱層次結構。
名稱層次結構是什麼意思呢?比如我們有一個Company類,它包含Name屬性和Employees屬性(公司所有Employee的集合),而Employee類又包含Name屬性。那麼,如果要將Company的Name屬性繫結到TextBox控制元件的Text屬性,程式碼為:
TextBox1.DataBindings.Add("Text", company, "Name");
如果要繫結Employees的Name屬性,程式碼為:
TextBox1.DataBindings.Add("Text", company, "Employees.Name");
Employess.Name即為用點分隔的名稱層次結構。在這裡,Employees為一個集合,將Employees.Name繫結到TextBox會出現什麼情況呢?測試後可知,TextBox將顯示Employees集合中第一個Employee的Name屬性。
介面
程式碼實現:
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 DataBindingsDemo { public partial class FrmDataBindings : Form { public FrmDataBindings() { InitializeComponent(); } private void FrmDataBindings_Load(object sender, EventArgs e) { //繫結到DataTable DataTable dtSource = GetDataTable(); this.textBox1.DataBindings.Add("Text", dtSource, "StudentNo"); this.textBox2.DataBindings.Add("Text", dtSource, "StudentName"); this.textBox3.DataBindings.Add("Text", dtSource, "Sex"); //繫結到實體物件 Student stu = new Student() { StudentNo=2,StudentName="測試2",Sex="女"}; //必須是繫結到物件的屬性(此例中繫結到StudentNo,而不是student), this.textBox4.DataBindings.Add("Text", stu, "StudentNo"); this.textBox5.DataBindings.Add("Text", stu, "StudentName"); this.textBox6.DataBindings.Add("Text", stu, "Sex"); } private DataTable GetDataTable() { DataTable dt = new DataTable(); DataColumn dcNo = new DataColumn("StudentNo", typeof(Int32)); DataColumn dcName = new DataColumn("StudentName", typeof(string)); DataColumn dcSex = new DataColumn("Sex", typeof(string)); dt.Columns.Add(dcNo); dt.Columns.Add(dcName); dt.Columns.Add(dcSex); dt.Rows.Add(new object[] { 1,"測試","男"}); return dt; } } public class Student { private int studentNo; public int StudentNo { get { return studentNo; } set { studentNo = value; } } private string studentName; public string StudentName { get { return studentName; } set { studentName = value; } } private string sex; public string Sex { get { return sex; } set { sex = value; } } } }
執行效果:
到此這篇關於Winform專案中TextBox控制元件DataBindings屬性的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45