Member 12349103 Ответов: 1

Текстовое поле маски не сохраняет ведущее значение 0 месяца


У меня есть маска текстового поля, когда я ввожу данные 02/22/2019 и сохраняю их в datagrid, сетка показывает правильный формат, но текстовое поле маски показывает 22/22/019. Это удаление ведущего 0. Источником данных является база данных Access, и она настроена на дату и время. В чем же проблема? Я также пробовал это в коде, но все равно получаю те же результаты.

Результаты, сохраненные в сетке и базе данных = 02/22/2019
Когда я выбираю строку сетки, она отображается в текстовом поле маски как 22/22/019, пропуская 0.

Любая помощь

Что я уже пробовал:

private void Form1_Load_1(object sender, EventArgs e)
        {      
 maskedTextBox1.Mask = "00/00/0000";

            maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected);
            maskedTextBox1.KeyDown += new KeyEventHandler(maskedTextBox1_KeyDown);
        }

        void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {
            if (maskedTextBox1.MaskFull)
            {
                toolTip1.ToolTipTitle = "Input Rejected - Too Much Data";
                toolTip1.Show("You cannot enter any more data into the date field. Delete some characters in order to insert more data.", maskedTextBox1, 0, -20, 5000);
            }
            else if (e.Position == maskedTextBox1.Mask.Length)
            {
                toolTip1.ToolTipTitle = "Input Rejected - End of Field";
                toolTip1.Show("You cannot add extra characters to the end of this date field.", maskedTextBox1, 0, -20, 5000);
            }
            else
            {
                toolTip1.ToolTipTitle = "Input Rejected";
                toolTip1.Show("You can only add numeric characters (0-9) into this date field.", maskedTextBox1, 0, -20, 5000);
            }
        }

1 Ответов

Рейтинг:
2

Member 12349103

Я нашел ответ.

Перейдите к свойству замаскированного текстового поля. Выберите "привязки данных", затем "дополнительно". Выберите "пользовательский" в списке "Тип формата" в середине диалогового окна. Введите "ММ/ДД/гггг" в поле "пользовательский формат" справа.

Я надеюсь, что это поможет другим


Dave Kreskowiak

Я действительно должен спросить, почему вы вводите даты в базу данных в виде строк, а не типа даты. Это в значительной степени делает любые запросы даты бесполезными, поскольку вы больше не сравниваете даты, а строки.