|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Ну т.е. код такой: Код: vbnet 1. 2. 3. 4. 5.
По TAB работает А если ткнуть мышкой -ни фига. Ощущение что срабатывает(GotFocus понятно ловится), но потом происходит что-то еще и выделение всего текста снимается. В VB6 аналогичный код работал и для мышки тоже. Как полечить? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 13:57 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
А зачем такое делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 14:20 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Belavik, Да сделано у меня так просто. Textbox -ReadOnly. Тыкнулся юзер туда - ему сразу все выделилось - удобно. Типа намек на то что надо скопировать текст целиком (ID-компа нужный для генерации лицензии). В VB6 код выше автоматом работал и для мышки тоже. Ну это стандартное поведение ComboBox которое кстати бесит. Причем я даже через API не знаю как это сделать. Edit Control Styles -нет там ничего. Понятно можно через комбинацию событий и булевую переменную сыграть, но я так не люблю делать. Нашел вот, почитал. Бред какой-то. Automatically select all text on focus in WinForms TextBox Фигня конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 14:35 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Дмитрий77Belavik, Да сделано у меня так просто. Textbox -ReadOnly. Тыкнулся юзер туда - ему сразу все выделилось - удобно. Типа намек на то что надо скопировать текст целиком (ID-компа нужный для генерации лицензии). В VB6 код выше автоматом работал и для мышки тоже. Ну это стандартное поведение ComboBox которое кстати бесит. Причем я даже через API не знаю как это сделать. Edit Control Styles -нет там ничего. Понятно можно через комбинацию событий и булевую переменную сыграть, но я так не люблю делать. Нашел вот, почитал. Бред какой-то. Automatically select all text on focus in WinForms TextBox Фигня конечно. Все, сообразил. Я подумал, что ты хочешь выделить текст в Textbox-е при перемещении в него текста. Вот и мозг чуть не сломал. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 14:37 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Belavik, короче неохота мозги ломать, есть такой спасительный прием как минимальный тик таймера в 1 миллисекунду: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 14:46 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Дмитрий77, у текстбокса вроде должно быть событие OnEnter, таймер не нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 15:47 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Arm79, там в WndProc именно на сообщение входа в TextBox есть отдельный кейс Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
вот рабочий вариант, при получении фокуса с клавы и мышки текст в боксе выделяется весь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:04 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Arm79, _Enter бесполезен, тем более он генерируется до _GotFocus Скорее всего выделение снимается по какому нибудь _(Mouse)Click, которое происходит сразу после _GotFocus но ИМХО чем извращаться с этим - проще таймер. Но, могу добавить что то чего хочу - это не родное поведение Common Controls, так что в данном случае к .Net без претензий. В VB6 работает видимо в силу его (другой) модели последовательности событий -типа подфортило и совпало с моими желаниями. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:09 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Roman Mejtes Код: c# 1. 2. 3. 4. 5. 6.
вот рабочий вариант, при получении фокуса с клавы и мышки текст в боксе выделяется весь. Сабклассить? А 513 это какая константа? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:14 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Дмитрий77, городить такое через таймер, это говнокод ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:14 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:15 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Roman Mejtesгородить такое через таймер, это говнокод Согласен. Но в меньшей степени, чем здесь напридумывали: Automatically select all text on focus in WinForms TextBox В смысле гавнокода меньше. Ну знаешь, тут у людей другие понятия про что есть "гавнокод", я это уже заметил. >в гугле забаннили? Да не, просто думал ты быстрее ответишь. Счас глянем. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:21 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Дмитрий77, вообще я на WF не программирую уже очень давно и знаю её плохо. Но чтоб разобраться, как это сделать, я просто открыл исходный код TextBox и нашел причину описанного тобой поведения. Это тебе на будущее, куда смотреть в след. раз :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:24 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Roman Mejtes, 513 - WM_LBUTTONDOWN Это и через .Net можно сделать: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Только это плохое решение. У тебя весь текст будет выделяться при КАЖДОМ щелчке мыши (а не только при входе в контрол), а у меня такой цели не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:34 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Дмитрий77, проверяй наличие фокуса, если нет фокуса то выполни базовый и выдели всё ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:41 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Roman Mejtes, мне думается что лучше гавнотаймер чем гавнопроверки в таком духе ,коих гавнопроверок приведено куча вариантов по той ссылке что я дважды процитировал. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:50 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Дмитрий77, ну если ты считаешь, что таймер лучше, чем условие, то удачи конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 16:55 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Roman Mejtes, Да не считаю я так. Просто условия там нормального не придумаешь. Я нарочно проверил: В VB6 генерируется последовательность событий: Text1_MouseDown Text1_GotFocus -и за счет этого мой код работает без лишних извращений. А в .Net генерируется последовательность событий: TextBox1_Enter TextBox1_GotFocus TextBox1_MouseDown -и за счет этого аналогичный код не работает. И нужны извращения - по любому. Либо таймер, который эа свою миллисекунду перескочит через _MouseDown, либо как ты говоришь условия, а я добавлю - извращенные условия. И не важно, каким образом эти условия накладывать - через .Net-события или через сабклассинг окна, что для этой минизадачи точно - ну никак не оправданное излишество, при всем моем уважении к API-технологиям. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 17:14 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Если я правильно Вас понял Код: vbnet 1. 2. 3.
Выделяет весь текст по табу и клику мыши. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2015, 23:33 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
wawawaЕсли я правильно Вас понял Код: vbnet 1. 2. 3.
Выделяет весь текст по табу и клику мыши. Нееееет! Только таймером! Никаких простых решений, найн найн, ето охтунг и не по-нашему! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 13:58 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
wawawaВыделяет весь текст по ... и клику мыши. Пробовал? Пост выше читал? А в .Net генерируется последовательность событий: TextBox1_Enter TextBox1_GotFocus TextBox1_MouseDown _Enter -да, твой код сработает, он выделит но _MouseDown - это выделение тут же снимет Таймер нужен, чтоб "перепрыгнуть" через _MouseDown. Гавнокод, да. Зато просто, ясно и работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 15:12 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Дмитрий77wawawaВыделяет весь текст по ... и клику мыши. Пробовал? Пост выше читал? А в .Net генерируется последовательность событий: TextBox1_Enter TextBox1_GotFocus TextBox1_MouseDown _Enter -да, твой код сработает, он выделит но _MouseDown - это выделение тут же снимет Таймер нужен, чтоб "перепрыгнуть" через _MouseDown. Гавнокод, да. Зато просто, ясно и работает. А если по Enter выставить флаг, а по MouseDown посмотреть на него, и, если выставлен, делать SelectAll? Какой-нить AutoresetEvent... PS Таймер становится мемом :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 15:21 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 15:45 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Arm79 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Вот второй вариант: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
По хорошему нужно бы создать отдельный UserControl, в который запихать нужное поведение, и использовать его вместо TextBox ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 16:21 |
|
Выделить весь текст в TextBox при перемещении в него.
|
|||
---|---|---|---|
#18+
Arm79, забей. Я уже давно забил и забыл. Arm79А если по Enter выставить флаг, а по MouseDown посмотреть на него, и, если выставлен, делать SelectAll? А где гарантия что MouseDown вообще будет? Ты пришел туда через Tab, флаг твой останется висеть в True. Дальше ты ткнешь туда мышью и вместо штатного попадания курсором получишь опять выделение (когда это уже не нужно). Напрягаем все свои знания по событиям .Net и(или) по API (сообщения окну) ?-> Городим новый флаг, чтобы это полечить? -> получаем уже не гавнотаймер а цепочку гавнокода, которая при таком подходе обязательно сгавнит в каком-нибудь частном случае. Таймер по крайне мере не гавнит. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 17:06 |
|
|
start [/forum/topic.php?fid=20&msg=38856344&tid=1401974]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 358ms |
total: | 500ms |
0 / 0 |