Не удается получить дату для отображения в текстовом поле - PullRequest
1 голос
/ 13 марта 2012

Создание приложения Windows Forms в C #, у меня есть программа, которую я пытаюсь вставить дату в текстовое поле (textBox3), и я не могу получить дату для отображения. Я создал кнопку на всплывающей форме, и дата показывается очень хорошо. Но текстовое поле никогда не заполняется. Какие-либо предложения? Вот код:

    private void textBox3_TextChanged(object sender, EventArgs e)
    {
        var today = DateTime.Today.ToString("dd/MM/yyyy");
        textBox3.Text = today;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        var today = DateTime.Today.ToString("MM/dd/yyyy");
        MessageBox.Show("Today is " + today + ".");
    }

Ответы [ 3 ]

2 голосов
/ 13 марта 2012

Код, который у вас есть , будет работать только тогда, когда вы наберете что-нибудь на нем . Причина в том, что вы заполняете свой Textbox.Text в событии TextChanged (когда пользователь вводит что-то в текстовое поле).

Я полагаю, что вам нужно назначить свойство Text после InitializeComponent в вашей форме или любых других средств инициализации, таких как FormLoad :

    public MyForm()
    {
        InitializeComponent();
        InitializeDates();            
    }

    public void InitializeDates()
    {
        var today = DateTime.Today.ToString("dd/MM/yyyy");
        textBox3.Text = today;
    }
0 голосов
/ 14 марта 2012

Прежде всего, спасибо всем, кто дал мне ответ, не задавая вопросов. Я понимаю, куда направляются вопросы, но они только смущают уже запутанных. Я учусь на вещах, поэтому прямые ответы очень ценятся!

Тем не менее, я обошел проблему необходимости ввода поля, чтобы оно заполняло дату, предварительно загружая текст при загрузке! Итак, Икар, ты прав. Я хотел предположить, что пользователь может вообще не вводить поле даты. (пытаясь сделать его отказоустойчивым)

Еще раз спасибо всем! : -)

 **private void Form1_Load(object sender, EventArgs e)**
    {
         try
             {
                {
                textBox2.Text = "Date";
                }
                     {
                        catch (System.Exception ex)
                     }
                {
                MessageBox.Show("Error: " + ex.Message);
                }
             }
    }

Остальное было легко. , .

   **private void textBox2_TextChanged(object sender, EventArgs e)**
            {
                var date = DateTime.Now.ToString("MM/dd/yyyy");
                textBox2.Text = date;
            }
0 голосов
/ 13 марта 2012

Ваше текстовое поле будет обновляться только тогда, когда вы начнете что-либо вводить в текстовое поле, поскольку, очевидно, вы подключаетесь к событию Text_Changed .

Напечатайте что-нибудь в textBox3, и вы увидите, что текст становится тем, что today удерживает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...