Ada*_*ler 2 .net c# binding .net-3.5 winforms
我在表单上有一个带有数字字段的winforms应用程序.这开始为null然后如果我将其设置为数字,更改焦点然后再次清除文本框更改回先前输入的数字.如果我更改数字,例如.从4到5它正确更新但我希望用户能够清除已输入的内容.
以下是一些演示此行为的示例代码:
public partial class Form1 : Form
{
DataTable table = new DataTable("TableName");
public Form1()
{
DataColumn column = new DataColumn("NumericColumnName", typeof(Double));
column.AllowDBNull = true;
table.Columns.Add(column);
object[] rowData = new object[1];
rowData[0] = DBNull.Value;
table.Rows.Add(rowData);
InitializeComponent();
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = table;
Binding binding = new Binding("Text", bindingSource, "NumericColumnName");
textBox1.DataBindings.Add(binding);
}
}
Run Code Online (Sandbox Code Playgroud)
这是Visual Studio 2008中一个全新的.net 3.5表单项目.我在表单中添加了两个文本框.
我的实际应用程序生成数据集的方式不同,但它具有相同的行为.对数据表的数字列的绑定是否允许空值.
小智 7
实际上,您可以允许NULL值,但是您必须在代码中添加其他解析:
binding.Parse += new ConvertEventHandler(ParseNumeric);
Run Code Online (Sandbox Code Playgroud)
其中ParseNumeric具有以下形式:
private void ParseNumeric(object sender, ConvertEventArgs e)
{
if(e.Value.Equals(""))
e.Value = DBNull.Value;
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这段代码允许在文本框中使用空文本,然后在数据库中用NULL值表示.
| 归档时间: |
|
| 查看次数: |
9669 次 |
| 最近记录: |