本文介绍了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# - 绑定文本框为整数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!