我有一个TextBox,其中有一个日期。我用以下代码行转换日期:
txtTextbox.Text = Convert.ToDateTime(txtTextbox.Text).ToString("dd/MM/yyyy");
文本框中的文字现在是" 05/12 / 1978"。
但是当我在文本框内单击以编辑日期但我改变主意并离开文本框时,文本如下:&#34; 05/12/1978 0:00:00&#34;。< / p>
我尝试通过转换txtTextbox_Leave
事件中的日期来解决此问题,但这不起作用。
编辑:
private void Form1_Load(object sender, EventArgs e)
{
// TableAdapters
tblWerknemersTA = new dtsGIPTableAdapters.tblWerknemersTableAdapter();
tblAfdelingenTA = new dtsGIPTableAdapters.tblAfdelingenTableAdapter();
// DataSet
dtsGIP = new dtsGIP();
tblWerknemersTA.Fill(dtsGIP.tblWerknemers);
tblAfdelingenTA.Fill(dtsGIP.tblAfdelingen);
// DataView
dtvWerknemers = dtsGIP.tblWerknemers.DefaultView;
dtvWerknemers.Sort = "Familienaam ASC";
// BindingSource
tblWerknemersBS = new BindingSource();
tblWerknemersBS.DataMember = "tblWerknemers";
tblWerknemersBS.DataSource = dtvWerknemers;
// Databindings
textBox1.DataBindings.Add(new Binding("text", tblWerknemersBS, "Geboortedatum"));
// Convert date
textBox1.Text = Convert.ToDateTime(textBox1.Text).ToString("dd/MM/yyyy");
}
在这个演示应用程序中,我有两个文本框,当我点击第一个然后再点击第二个文本框时会出现问题。
编辑2:
private void Form1_Load(object sender, EventArgs e)
{
// TableAdapters
tblWerknemersTA = new dtsGIPTableAdapters.tblWerknemersTableAdapter();
tblAfdelingenTA = new dtsGIPTableAdapters.tblAfdelingenTableAdapter();
// DataSet
dtsGIP = new dtsGIP();
tblWerknemersTA.Fill(dtsGIP.tblWerknemers);
tblAfdelingenTA.Fill(dtsGIP.tblAfdelingen);
// DataView
dtvWerknemers = dtsGIP.tblWerknemers.DefaultView;
dtvWerknemers.Sort = "Familienaam ASC";
// BindingSource
tblWerknemersBS = new BindingSource();
tblWerknemersBS.DataMember = "tblWerknemers";
tblWerknemersBS.DataSource = dtvWerknemers;
// Databindings
Binding textBoxBinding = new Binding("text", tblWerknemersBS, "Geboortedatum");
textBoxBinding.FormatString = "dd/MM/yyyy";
textBox1.DataBindings.Add(textBoxBinding);
}
答案 0 :(得分:1)
使用数据绑定时,它会在数据更改时更新控件。除非您指定特定格式,否则它将使用默认格式。将bound属性设置为特定值是相当不寻常的,因为您通常让绑定数据确定显示的值。在任何情况下,您都不能依赖于设置值时使用的特定格式(除非它与绑定格式匹配)。
您的案例中的解决方案是设置绑定格式:
// Databindings
Binding textBoxBinding = new Binding("text", tblWerknemersBS, "Geboortedatum", true,
DataSourceUpdateMode.OnValidation, null, "d");
textBox1.DataBindings.Add(textBoxBinding);