2010-01-08 37 views
0

我有抓住出生日期和从数据表和推数据时到文本框中上述任一在掩蔽的文本框中显示它们用于查看和编辑屏蔽文本框去除前述零日期

然而的处理零获得除去

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

掩蔽文本框被设置为00/00/0000

其中分配代码是该线:

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

到目前为止我已经试过如下:

  • 删除,然后从另一种形式 在同一程序重新添加控制
  • 复制掩盖文本
  • 掩蔽的文本框抓起相同 信息来自同一个数据库 表格并且格式正好与 相同并且它的工作原理
  • 尝试variou期不同格式 包括无格式都具有相同的 结果

没有人有任何其他建议?

+3

什么是从手表调出'格式' – 2010-01-08 17:57:09

+0

05/05/2005 的字符串 – Sean 2010-01-08 18:09:05

+0

+1并且.ToString会影响那结果?我猜这不是控制的问题,但代码 – MikeW 2010-01-08 18:09:31

回答

2

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

现在我已经发现了如何复制这个问题,希望有更多的知识可以来找出如何绕过这个问题。看起来这是VB中的一个小故障。不知道这是否构成了实际的“答案”,但我提供了找到解决方案的明确途径。我只是没有这方面的知识。

(更新:我发现它这样做是为了所有的口罩,不只是“短日期”面具)

+0

我继续并将其作为我自己的问题发布。我来到这里试图搜索谷歌我的问题,这是我能找到的最接近的。似乎更有效地发布我自己关于问题的问题并提供重现问题的方式。一旦我得到答案,我会更新。 – Jeff 2012-10-10 07:22:23

0

尝试DataTable中的数据转换为日期和背部:

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

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

+0

得到这个84/19/69_1结果 – Sean 2010-01-08 19:07:49

1

我想我将不得不把这个放在“未解释的奥秘”框中。

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

我真的不知道如何甚至重新创建问题必须在表单设计级别代码的东西?

无论如何,感谢所有人的帮助。

0

我有同样的问题,掩盖了在运行时添加一个文本框控件。我只是想这一天的日期添加到控制

的Visual Studio 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") 

解决似乎简单,但一切运作良好

+0

对不起,我不再在发生此问题的同一家公司工作,我当时也在使用VS 2008 .net3.5(我认为)。 – Sean 2015-01-21 20:14:24