Итак, я пытаюсь создать небольшую программу, в которой, когда вы щелкаете пустое текстовое поле, появляется диалоговое окно и меняет фон текстового поля. Теперь я попытался использовать приведенный ниже код, но ничего не сделал. Текстовое поле находится в режиме только для чтения. Любая помощь очень ценится.
private void textBox1_Enter(object sender, System.EventArgs e)
{
colorDialog1.ShowDialog();
textBox1.BackColor = colorDialog1.Color;
}
Извините, я исправил имя.
Используйте событие MouseDown вместо enter. Событие enter запускается, когда текстовое поле получает фокус. Когда у него есть фокус, он не срабатывает, пока не потеряет его и не восстановит его снова.





(если вы используете 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 текстовых полей, когда флажок установлен и нажата кнопка, все они меняют определенный цвет, но если вы щелкнете по текстовому полю, диалоговое окно должно измениться. цвет для этого отдельного текстового поля.
На самом деле вам не нужен настраиваемый цветной диалог. Рассмотрите возможность создания диалогового окна цвета на лету (var dlg= new ColorDialog();), а затем его вызов с this в качестве аргумента: dlg.ShowDialog(this);. Вы также должны проверить DialogResult, как это делаю я (чтобы ничего не произошло, если пользователь выйдет из диалогового окна).
При чем здесь
Visual Basic 2015?