2013-03-09 1 views
0

Я использую следующий код для проверки коротких дат.TextBox Дата проверки

DateTime dt = DateTime.Now; 
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-FR"); 
if (DateTime.TryParse(textBox1.Text, out dt)) 
{ textBox1.Text = dt.ToShortDateString(); } 

Но есть небольшая проблема. Если пользователь вводит 1/1/1, выход выглядит как 01/01/2001.

если пользователь вводит 1-1-1, выход выглядит как 01/01/2001. Из-за формата, данного мной.

сейчас, что я хочу, если пользователь вводит как 1-1-1, выход должен быть 01-01-2001.

+0

Попробуйте использовать текстовое поле .... цветовой Сво лучший вариант .... –

+0

Независимо от того, какого формата пользователь вводит дату - > после того, как строка анализируется на DateTime ->, она отображается всегда одинаково. Потому что это то же самое значение DateTime -> только вход был другим. – ub1k

+0

@sree aneev, так что вы хотите получить выход в соответствии с правом ввода? означает, что если вы входите в 1/1/1, вы хотите 01/01/2001, и если пользователь вводит 1-1-1, вы хотите 01-01-2001. это так??? – kashif

ответ

2

Попробуйте это:

dt.ToString(@"dd-MM-yyyy"); 

И если вы хотите, чтобы diferentiate выход в соответствии с входом, я хотел бы предложить следующее:

if (textbox1.Text.Contains("/")) 
{ 
    textBox1.Text = dt.ToString(@"dd/MM/yyyy"); 
} 
else 
{ 
    textBox1.Text = dt.ToString(@"dd-MM-yyyy"); 
} 
+0

для этого 1/1/1, что я могу сделать, я хочу, как по пользователю –

+0

@sree aneev see my edit – Matus

+0

@Matus Это я, который поддержал вас за ваш ответ. Но в противовес этому я спрашиваю у спрашивающего, почему он не использует MaskTextBox. Если бы я был им, я бы никогда не использовал цель TextBox для даты по крайней мере. – kashif

0

Я не понимаю, почему вы используете TextBox вместо MaskedTextBox в таком состоянии. Я бы порекомендовал вам использовать MaskedTExtBox для этого. Перетаскивание два MaskedTextBox из ToolBox в форму и в FormLoadEvent использовать этот код

maskedTextBox1.Mask = "##/##/####"; 
maskedTextBox2.Mask = "##-##-####"; 
+0

Примечание. Я использовал Two MaskedBoxes, чтобы показать вам, что вы можете использовать любой тип желаемого формата. вы можете даже настроить его вручную в соответствии с вашими требованиями. – kashif

+0

, но он хочет отформатировать дату двумя разными способами в соответствии с пользовательским вводом в том же текстовом поле – Matus

+0

просто попробуйте одну вещь @kashif, если он войдет в 1/1/1, что должно быть ответом для вашего первого «##/##/#### "для вышеупомянутого ответа должен быть 1 // 1 // 1. это неверно. –