Модераторы: diadiavova, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение курсора(каретки) в TextBox, Показать курсор при вводе с кнопок 
V
    Опции темы
mxmaks
Дата 16.1.2011, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Приветствую Всех и С Новым Годом!
Вопрос в том, чтобы отобразить мигающий курсор (каретку) в конце вводимой информации в текстбоксах?
Информация в textbox вводится с кнопок... (без клавиатуры)
С клавиатуры курсор отображается нормально, а с кнопок пропадает...
В какую обработку его вставить...
В VB6 были Hide.Caret и Show.Caret, как реализовать на VB.NET...

PM MAIL   Вверх
diadiavova
Дата 16.1.2011, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



mxmaks, Просто когда ты нажимаешь на кнопку фокус переводится с текстбокса на нее. Верни его обратно и все.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
mxmaks
Дата 16.1.2011, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Благодарю за отклик, но попытался осмыслить... не получилось...
txt.Focus->btn.Focus->txt.Focus...
Как-то так, или я глючу...?
PM MAIL   Вверх
diadiavova
Дата 16.1.2011, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(mxmaks @  16.1.2011,  21:44 Найти цитируемый пост)
txt.Focus

 smile После добавления текста вызывай этот метод.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
mxmaks
Дата 16.1.2011, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



После каждого нажатия на btn?...
Шутка: этого хрена с бугра в нашей деревне всякий знает...,  а я с райцентра...
А если серьезно, есть функция Caret, думаю, ее надо применять или можно без нее...
В VB6 были Hide.Caret и Show.Caret... работали...(вводишь букву, а курсор как положено справа моргает, видно где находишься...)
В VB.NET как-то по другому, в MSDN есть инфа, но с ней еще не экспериментировал, подумал кто-нибудь сталкивался с этим...



PM MAIL   Вверх
diadiavova
Дата 16.1.2011, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(mxmaks @  16.1.2011,  22:26 Найти цитируемый пост)
В VB6 были Hide.Caret и Show.Caret... 

Я ведь тебе объяснил причину исчезновения курсора. Дело не в том, что исчезает курсор, а в том, что ты фокус переводишь на другой контрол.
Цитата(mxmaks @  16.1.2011,  22:26 Найти цитируемый пост)
После каждого нажатия на btn?...

Ну это уже твое дело как это реализовывать. Можно сделать так, чтобы на кнопку фокус вообще не переходил (свойство CanFocus), можно обрабатывать событие TextChanged текстбокса и переводить фокус в нем, можно делать это в обработчиках нажатия кнопок. 
Цитата(mxmaks @  16.1.2011,  22:26 Найти цитируемый пост)
(вводишь букву, а курсор как положено справа моргает, видно где находишься...

Но когда на текстбоксе нет фокуса, каретка и там моргать не будет.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
mxmaks
Дата 16.1.2011, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Благодарю...
Буду пробовать...
PM MAIL   Вверх
diadiavova
Дата 16.1.2011, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Да, и еще одно. Как я понимаю, у тебя будет несколько кнопок, выполняющих одинаковую работу(добавление символа в текстбокс). В данном случае нет смысла обрабатывать клики отдельно, можно вместо этого просто свойству Tag каждой кнопки присвоить тот символ, который она будет добавлять и написать один обработчик для всех кнопок, который будет добавлять значение свойства Tag отправителя события в текстбокс и переводить фокус.

Это сообщение отредактировал(а) diadiavova - 16.1.2011, 23:40


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
mxmaks
Дата 17.1.2011, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Приветствую!
Все сделал как Вы посоветовали, все работает, только не могу убрать выделение (синий фон, как в системе...)
Хотелось, чтобы был только курсор, а выделение сбивает и раздражает...
Ищу в MSDN, может есть готовая идея...
А кнопки работают в одном обработчике...
PM MAIL   Вверх
diadiavova
Дата 17.1.2011, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



А ты как текст добавляешь? Если присвоением значения свойству текст, то так и должно быть. Добавляется текст методом AppendText. А выделение не снимается, а просто устанавливается его начало и длина (свойства SelectionStart и Selection Lenght, если мне не изменяет склероз).


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
mxmaks
Дата 18.1.2011, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Приветствую!
Поясню, пишу своему мальчишке "обучалку": форма-текстбокс-кнопки (с буквами и цифрами).
Работа мышью (жмет кнопку с буквой или цифрой) и пишет слова или решает примеры...
Хотелось, чтобы было красиво, да и самому осмыслить и подучиться...
В vb6 вроде все было нормально, а в vb.net споткнулся...
Добавляю как String, потом преобразую в Val (если примеры-вычисления)
И, кстати, почему в примере 0.4+0.3= не решает, как будто нет одного значения, остальное все решает...
Да, текст выделяется, но курсор в конце, а выделение не снимается.
При вводе с "клавы" нормально (курсор в конце, текст не выделен).
Свойство HideSelection (TextBox) работает, но криво...

PM MAIL   Вверх
diadiavova
Дата 18.1.2011, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



mxmaks, ты так и не написал как добавляешь текст. Что тут можно сказать? Как можно решать проблему, если нет кода, который ее вызвал. Насколько я помню, при добавлении текста с помощью AppendText этой проблемы быть не должно.
Цитата(mxmaks @  18.1.2011,  22:06 Найти цитируемый пост)
0.4+0.3= 

Это опять-таки зависит от того, каким способом ты это решаешь и текстбоксы тут явно не причем. Но думаю, что скорей всего надо в качестве разделителя десятичных разрядов использовать запятую.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
mxmaks
Дата 18.1.2011, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Текст добавляю как стринг, кнопке присвоен символ буквы...
Вычисляет только больше 1 с точкой, перевод из стринга через Val ...
Посмотрю на AppendText 

PM MAIL   Вверх
diadiavova
Дата 19.1.2011, 03:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(mxmaks @  18.1.2011,  23:14 Найти цитируемый пост)
Вычисляет только больше 1 с точкой, перевод из стринга через Val ...

Честно говоря, не знаю как эта функция работает, так что ничего сказать не могу. В дотнете лучше использовать Double.Parse или Double.TryParse, тогда можно будет установить и параметры преобразования(например точку или запятую в качестве разделителя).


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
mxmaks
Дата 19.1.2011, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Добрый вечер!
Посмотри код, может что-то проявится...
Код


    Dim n As Boolean ' начало ввода

    Private Sub Alfavit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click, btn2.Click
        ' процедура обработки кнопок
        Dim Alfavit As String = CType(sender, Button).Text

        If n = True Then txt1.Text = Alfavit : n = False
        If n = False Then txt1.Text = txt1.Text & Alfavit
        txt1.Focus()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        btn1.Text = "А" : btn2.Text = "М" : btnRes.Text = "+"
        txt1.Clear()
    End Sub

    Private Sub btnRes_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRes.Click
        Dim x As Double = Val(txt1.Text)
        Dim y As Double = Val(txt2.Text)
        Dim z As Double

        ' сложение
        If x And y <> 0 Then
            z = x + y
            lblRes.Text = z.ToString
        End If
    End Sub

...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0982 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.