【问题标题】:Masked Text Box removes preceeding zeros in date蒙面文本框删除日期中的前零
【发布时间】:2011-01-03 00:38:48
【问题描述】:

我有一个从数据表中获取出生日期并将它们显示在蒙版文本框中以供查看和编辑的过程

但是,当将数据推送到文本框时,任何前面的零都会被删除

例如 05/05/2005 将显示为 55/20/05__

被屏蔽的文本框设置为 00/00/0000

分配代码的行是:

MaskedTextBox.Text = Format(DataTable(0)("DOB"), “MM/dd/yyyy”).ToString

到目前为止,我已经尝试了以下方法:

  • 删除并重新添加控件
  • 从另一个表单复制蒙版文本框 在同一个程序中
  • 蒙面文本框上方抓取相同 来自同一数据库的信息 表,并完全格式化 一样,它有效
  • 尝试了各种不同的格式 包括没有格式都一样 结果

还有人有其他建议吗?

【问题讨论】:

  • 调用Format产生的字符串是什么
  • +1 .ToString 会影响该结果吗?我猜这不是控件的问题,而是代码的右侧
  • 在没有 .tostring 的情况下尝试了相同的结果,而且我对另一个表单具有相同的控制,提取完全相同的数据并格式化完全相同。但是它适用于该表单而不适用于该表单

标签: vb.net visual-studio-2008 .net-3.5


【解决方案1】:

我已经能够复制该问题,但目前似乎没有解决方案。您需要的是表单顶部的绑定导航器工具栏,其中包含带有任何掩码的数据绑定蒙版文本框(无论哪个都无所谓)。当您运行表单时,最初被屏蔽的文本框将接受数据就好了。但是,如果您单击绑定导航器工具栏上的“AddNewItem”按钮(加号按钮),当您尝试输入日期时,它将导致被屏蔽的文本框删除所有前面的零。似乎所有的面具都会这样做。重建表单也不会修复它。每次您点击“AddNewItem”按钮,然后继续将数据输入到任何格式化的蒙版文本框中时,都会发生这种情况。

既然我已经确切地找到了如何复制这个问题,希望有更多知识的人可以来找出如何规避这个问题。这似乎是VB中的一个小故障。不知道这是否构成实际的“答案”,但我提供了一条明确的途径来寻找解决方案。我只是不知道如何做到这一点。

(更新:我发现它对所有掩码都这样做,而不仅仅是“短日期”掩码)

【讨论】:

  • 我继续将其发布为我自己的问题。我通过尝试在谷歌上搜索我的问题来到这里,这是我能找到的最接近的。似乎更有效地发布我自己关于该问题的问题并提供复制该问题的方法。一旦我得到答案,我会更新这个。
【解决方案2】:

我想我将不得不把它放在“无法解释的奥秘”框中。

根据另一位开发人员的建议,我手动重新创建了表单,重新添加了所有控件,现在它可以正常工作了(将所有控件从一个表单复制并粘贴到另一个会导致问题随之而来)。

我真的不知道如何重新创建问题一定是表单设计级别代码中的东西???

无论如何感谢大家的帮助。

【讨论】:

    【解决方案3】:

    尝试将 Datatable 数据转换为日期并返回:

    MaskedTextBox.Text = Date.Parse(DataTable(0)("DOB")).ToString("MM/dd/yyyy")
    

    我的猜测是,要么是数据库以您不期望的格式发送日期,要么您更改了控件的文化(在 Behaivior 属性下),或者您更改了计算机显示日期的方式,从而改变了它的文化。但是,我尝试无法用我的文化设置复制问题。

    【讨论】:

    • 得到这个 84/19/69_1 结果
    【解决方案4】:

    我对在运行时添加的蒙版文本框控件有同样的问题。我只是想将当天的日期添加到控件中

    视觉工作室 2013

    Dim Today As Date = Now.Date
    tbox_ShipDate.Text = FormatDateTime(Today,DateFormat.ShortDate) 'Failed every time
    

    问题解决了

    tbox_ShipDate.Text = Format(Today, "MM/dd/yyyy")
    

    看起来很简单,但一切都很好

    【讨论】:

    • 抱歉,我不再在出现该问题的同一家公司工作,当时我也在使用 VS 2008 .net3.5(我认为)。
    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多