2014-09-24 30 views
0

我的winforms应用程序中有一个蒙面文本框。我从数据库中取出日期为2/9/2012,并尝试在掩码文本框中插入该日期,但文本框将其显示为29/20/12__无法在Masked TextBox中插入日期

请找到我试过的最后一段代码。

if (value.HasValue) 
{ 
    txtDate.AppendText(" "); 
    string month = value.Value.Month.ToString(); 
    bool insertMonthZero = false; 
    if (month.Length == 1) 
    { 
     //month = "0" + month; 
     txtDate.Text = '0' + month; 
     insertMonthZero = true; 
    } 
    else 
    { 
     txtDate.Text = month; 
    } 
    string day = value.Value.Day.ToString(); 
    bool insertDayZero = false; 
    if (day.Length == 1) 
    { 
     insertDayZero = true; 
    } 
    else 
    { 
     txtDate.AppendText(day); 
    } 
    string year = value.Value.Year.ToString(); 
    txtDate.Text = value.Value.Date.ToShortDateString(); //txtDate.Text + year; 
    if (insertMonthZero) 
    { 
     txtDate.Text.Insert(0, "0"); 
    } 
    if (insertDayZero) 
    { 
     txtDate.Text.Insert(2, "0"); 
    } 
    //txtDate.AppendText(year); 
    // txtDate.Text = "0" + month + "/" + day + "/" + value.Value.Year.ToString(); 
} 
+0

文本框上有什么蒙版,以及什么类型的“值”?我猜想它是'DateTime?'吗? – 2014-09-24 15:20:40

+1

它看起来像你要找的东西可以用自定义的ToString格式来处理:value.ToString(“MM/dd/yyyy”) – Zeph 2014-09-24 15:20:40

+0

@Andy是的值是DateTime类型吗? – Sunny 2014-09-24 15:21:44

回答

0

看起来它是由日期格式问题引起的。你从你的数据库中获得2/9/2012,但是你的文本框掩码需要格式为mm/dd/yyyy的日期。在设置文本框的值之前,尝试将数据库的返回日期格式化为该格式。

+0

我treid但问题是与MaskedTextBox它抑制前导零。 – Sunny 2014-09-24 15:24:17

+0

在MaskedTextbox上设置的mask属性是什么? – mreyeros 2014-09-24 15:26:09

+0

此链接可能会帮助您解决您遇到的问题。用户VadimKa提供了一个解决方案,帮助解决问题。 https://groups.google.com/forum/#!topic/microsoft.public.windows.developer.mediacenter/-6v02nx-ZsU – mreyeros 2014-09-24 15:31:07