C# - 绑定文本框为整数 [英] C# - Binding TextBox to an integer

查看:181
本文介绍了C# - 绑定文本框为整数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何绑定文本框为整数?例如,结合单位textBox1中



 公共部分Form1类:表格
{
INT单位;

公共Form1中()
{
的InitializeComponent();


}

私人无效Form1_Load的(对象发件人,EventArgs五)
{
textBox1.DataBindings.Add(文本,单位,???);
}


解决方案

这将需要一个实例的公共财产;在这种情况下,本就足够了:

 公众诠释单位{获取;设置;} 
私人无效Form1_Load的(对象发件人,EventArgs五)
{
textBox1.DataBindings.Add(文本,这个单位);
}

有关双向通知,您将需要 UnitChanged INotifyPropertyChanged的

 私人INT单位; 
公共事件的EventHandler UnitChanged; //或通过事件列表
公众诠释单位{
{返回单位;}
集合{
如果(!值=单位){
单元=价值;
事件处理程序处理程序= UnitChanged;
如果(处理!= NULL)处理(这一点,EventArgs.Empty);
}
}
}

如果你不想

 类UnitWrapper {
公众诠释单位:它的公共API,你可以在一个隐藏式的地方把它包{获取;集;}
}
私人UnitWrapper单位=新UnitWrapper();
私人无效Form1_Load的(对象发件人,EventArgs五)
{
textBox1.DataBindings.Add(文本,单位,单位);
}

有关信息的事件榜的东西是这样的东西:

 私有静态只读对象UnitChangedKey =新的对象(); 
公共事件的EventHandler UnitChanged
{
加{Events.AddHandler(UnitChangedKey,价值);}
拆下{Events.AddHandler(UnitChangedKey,价值);}
}
...
事件处理程序处理程序=(事件处理程序)活动[UnitChangedKey]
如果(处理!= NULL)处理(这一点,EventArgs.Empty);


How to bind a TextBox to an integer? For example, binding unit to textBox1.

public partial class Form1 : Form
{
    int unit;

    public Form1()
    {
        InitializeComponent();


    }

    private void Form1_Load(object sender, EventArgs e)
    {
        textBox1.DataBindings.Add("Text", unit, "???");
    }

解决方案

It would need to be a public property of an instance; in this case, the "this" would suffice:

public int Unit {get;set;}
private void Form1_Load(object sender, EventArgs e)
{
    textBox1.DataBindings.Add("Text", this, "Unit");
}

For two-way notification, you'll need either UnitChanged or INotifyPropertyChanged:

private int unit;
public event EventHandler UnitChanged; // or via the "Events" list
public int Unit {
    get {return unit;}
    set {
        if(value!=unit) {
            unit = value;
            EventHandler handler = UnitChanged;
            if(handler!=null) handler(this,EventArgs.Empty);
        }
    }
}

If you don't want it on the public API, you could wrap it in a hidden type somewhere:

class UnitWrapper {
    public int Unit {get;set;}
}
private UnitWrapper unit = new UnitWrapper();
private void Form1_Load(object sender, EventArgs e)
{
    textBox1.DataBindings.Add("Text", unit, "Unit");
}

For info, the "events list" stuff goes something like:

    private static readonly object UnitChangedKey = new object();
    public event EventHandler UnitChanged
    {
        add {Events.AddHandler(UnitChangedKey, value);}
        remove {Events.AddHandler(UnitChangedKey, value);}
    }
    ...
    EventHandler handler = (EventHandler)Events[UnitChangedKey];
    if (handler != null) handler(this, EventArgs.Empty);

这篇关于C# - 绑定文本框为整数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆