指定windows窗体文本字段上的数据类型
本文关键字:数据类型 字段 文本 windows 窗体 指定 | 更新日期: 2023-09-27 17:54:23
我是Visual Studio(2010)的初学者,我想从表单到后端接受一些数据,比如Integer或任何其他类的对象,而不是手动进行转换的头痛(如果不可能的话,我将不得不学习)。
Textbox1。文本总是返回字符串,而我希望它作为Textbox1。类名可以自动转换。
您将需要使用转换,您没有选择。你所能做的就是扩展文本框,并在其中编写你的转换器。很可能在转换失败的情况下传递一个默认值
例如:
public static class Extensions
{
public static int TextAsInt(this TextBox txt, int defaultValue)
{
var result = 0;
if (!Int32.TryParse(txt.Text, out result))
{
result = defaultValue;
}
return result;
}
}
,然后你可以这样使用:
int result = Textbox1.TextAsInt(50);
如果转换失败,返回的值将是50
话虽如此,但要使这样的扩展可重用,最明智的方法是扩展字符串对象,而不是文本框。因此,它将被称为Textbox1.Text.TextAsInt(50);
。
在winforms中常见的做法是通过自制增强控件,以下是我所使用的(剪切版本):
[System.ComponentModel.DesignerCategory("Code")]
public class MyTextBox : TextBox
{
[Browsable(false)]
public int AsInt
{
get
{
int result;
int.TryParse(Text, out result);
return result;
}
}
[Browsable(false)]
public bool IsIntOk
{
get
{
int result;
return int.TryParse(Text, out result);
}
}
protected override void OnTextChanged(EventArgs e)
{
ForeColor = IsIntOk ? SystemColors.WindowText : Color.Red;
base.OnTextChanged(e);
}
}