2010-01-08 29 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