Диалоговое окно цвета Visual Studio 2015 C# для текстового поля при щелчке в

Итак, я пытаюсь создать небольшую программу, в которой, когда вы щелкаете пустое текстовое поле, появляется диалоговое окно и меняет фон текстового поля. Теперь я попытался использовать приведенный ниже код, но ничего не сделал. Текстовое поле находится в режиме только для чтения. Любая помощь очень ценится.

 private void textBox1_Enter(object sender, System.EventArgs e)
    {
        colorDialog1.ShowDialog();
        textBox1.BackColor = colorDialog1.Color;

    }

При чем здесь Visual Basic 2015?

Ňɏssa Pøngjǣrdenlarp 03.10.2018 00:37

Извините, я исправил имя.

Eisenhorn 03.10.2018 00:41

Используйте событие MouseDown вместо enter. Событие enter запускается, когда текстовое поле получает фокус. Когда у него есть фокус, он не срабатывает, пока не потеряет его и не восстановит его снова.

γηράσκω δ' αεί πολλά διδασκόμε 03.10.2018 11:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
1 303
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

(если вы используете Windows Forms (как я предполагаю), вы должны пометить его, и у вас не должно быть тега «Visual Studio»)

Если я создаю приложение Windows Forms, перетащите текстовое поле и диалоговое окно цвета в форму и добавьте этот код:

    private void textBox1_Enter(object sender, EventArgs e)
    {
        if (colorDialog1.ShowDialog() == DialogResult.OK)
        {
            textBox1.BackColor = colorDialog1.Color;
        }
    }

... вверх появляется диалоговое окно "Цвет". Если я выберу цвет и нажму «ОК», задний цвет текстового поля изменится. Я пробовал это с параметром ReadOnly, установленным в true, и без него (я был удивлен, что вы можете «ввести» текстовое поле только для чтения, но ...).

Итак, вы видите всплывающее диалоговое окно цвета, вы выбираете цвет и нажимаете ОК, а затем ничего не видите? Это удивительно. Или вы видите что-то еще?

Как бы то ни было, это не лучший дизайн пользовательского интерфейса. Я не ожидаю, что в результате щелчка в текстовом поле появится еще один диалог. Также обратите внимание, что это может произойти только один раз. После того, как вы щелкнули в текстовом поле, вы ввели его. Вы должны установить фокус на другом элементе управления, прежде чем снова щелкнуть текстовое поле. Если вы щелкнете то же место над овером, вы войдете в него только в первый раз.

Это приложение Windows Forms, проблема в том, что оно не отображается вообще, я не вижу диалогового окна, появляющегося при первом щелчке в текстовом поле. Вероятно, это не лучший дизайн, но после поиска в Интернете решения это показалось самым простым. Я должен немного объяснить, что я пытаюсь сделать, у меня 5 текстовых полей, когда флажок установлен и нажата кнопка, все они меняют определенный цвет, но если вы щелкнете по текстовому полю, диалоговое окно должно измениться. цвет для этого отдельного текстового поля.

Eisenhorn 03.10.2018 01:11

На самом деле вам не нужен настраиваемый цветной диалог. Рассмотрите возможность создания диалогового окна цвета на лету (var dlg= new ColorDialog();), а затем его вызов с this в качестве аргумента: dlg.ShowDialog(this);. Вы также должны проверить DialogResult, как это делаю я (чтобы ничего не произошло, если пользователь выйдет из диалогового окна).

Flydog57 03.10.2018 03:45

Другие вопросы по теме