A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-许泽宇 中级黑马   /  2012-6-11 17:09  /  5462 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

winForm程序textbox如何绑定数据源。该用什么属性去绑定数据源呀?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

8 个回复

倒序浏览
控件名称.Text

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
.Text只是文字显示,我是要绑定数据源...显示数据库里的内容
回复 使用道具 举报
我也没有用过这样子绑定,在网上查了一下
textBox.DataBindings.Add( "Text ",   DataSet,   "字段");
不知道行不行,没有试。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
textbox控件有databind属性,用来执行绑定,但是没有datasource指定数据源。为什么要给一个文本框绑定数据源呢?用下拉列表不可以吗?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
给文本框绑定数据.只是做一个登陆的小程序的时候,用textbox的用户名在数据库中的值来自动获取combobox里的值,来给用户选择的,呵呵

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
可以在PageLoad事件中执行一些select语句,将结果赋给一个变量,然后将textbox的text属性等于该变量值,要注意数值类型

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
李玲 中级黑马 2012-6-12 10:50:07
8#
WinForm的控件类实现了IBindableComponent接口,因此,所有的继承自WinForm的Control类的控件都可以通过其DataBindings属性实现数据绑定。WinForm的数据绑定支持三种数据源:数据表、服务和对象。
数据绑定的方法:
using System;   
using System.Windows.Forms;   
using System.Drawing;   
using System.ComponentModel;   
   
namespace TextBoxDataBindings   
{   
    class Mydata   //我的数据类型。注意:这里不能声明为struct,否则数据绑定会无效!   
     {   
        public string Value { get; set; }   
        public DateTime Time { get; set; }   
     }   
   
   
    static class Program   
     {   
         [STAThread]   
        static void Main()   
         {   
             var mydata = new Mydata();  //声明一个用于绑定的对象      
             var f = new Form()  //主窗口      
             {   
                 Text = "文本框的数据绑定   F1 - 博客",   
                 ClientSize = new Size(292, 266),   
                 KeyPreview = true   
             };   
             var textBox1 = new TextBox() //做数据绑定测试。当光标离开此文本框时便会自动刷新绑定数据。   
             {   
                 Location = new Point(56, 45),   
                 Size = new Size(164, 21)   
             };   
             var textBox2 = new TextBox() //不使用绑定,直接修改mydata数据   
             {   
                 Location = new Point(56, 82),   
                 Size = textBox1.Size   
             };   
             var textBox3 = new TextBox() //显示绑定数据的对象mydata.Value的内容   
             {   
                 Location = new Point(56, 177),   
                 Size = textBox1.Size   
             };   
             textBox2.TextChanged += delegate //当文本框2中的文字发生改变时,修改绑定对象mydata   
             {   
                 mydata.Value = textBox2.Text;   
                 mydata.Time = DateTime.Now;   
             };   
             var timer = new Timer() //间隔500毫秒的计时器   
             {   
                 Interval = 500   
             };   
             timer.Tick += delegate //每隔500毫秒,会在文本框3中显示mydata.Value的内容   
             {   
                 textBox3.Text = mydata.Value != null ? mydata.Value : "<NULL>";   
             };   
             f.Controls.Add(textBox1);   
             f.Controls.Add(textBox2);   
             f.Controls.Add(textBox3);   
             f.Load += delegate //在主窗口加载时启动计时器   
             {   
                 timer.Start();   
             };   
             f.KeyUp += delegate(object sernder, KeyEventArgs e)   
             {   
                if (Keys.F1 == e.KeyCode)   
                 {   
                     System.Diagnostics.Process.Start("http://hi.baidu.com/wingingbob/blog/item/65652dec1a6b3fd82e2e2165.html");   
                 }   
             };   
   
             textBox1.DataBindings.Add("Text", mydata, "Value");  //将textBox1.Text属性与mydata.Value绑定   
   
             Application.EnableVisualStyles();   
             Application.Run(f);   
         }   
   
     }   
}  

测试这段代码,运行后,在第一个文本框中输入一些字符,按下Tab键使光标离开第一个文本框,第三个文本框会显示绑定的结果;在第二个文本框中输入一些字符,我写的TextChange事件,它会直接修改数据源,第三个文本框随之显示新的数据,但第一个文本框并没有更新,所以这里是单向数据绑定。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
使用textbox1.databindings.add(text,datasource,datamember)方法就可以了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马