Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / комбобокс по феншую / 25 сообщений из 58, страница 1 из 3
24.10.2011, 16:07
    #37495498
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
цель: при щелчке на ячейку таблицы должен открыться комбобокс. я могу сделать так, что при нажатии на таблицу появляется комбобокс, при втором нажатии на стрелочку комбобокс открывается. но это очень муторно. нужно, чтобы хватало одного щелчка на ячейку. заранее спс
...
Рейтинг: 0 / 0
24.10.2011, 17:25
    #37495700
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Код: plaintext
SendMessage MyCombobox.hWnd, CB_SHOWDROPDOWN,  1 ,  0 
надеюсь, что объявление функции и константы ты сможешь найти сам
...
Рейтинг: 0 / 0
24.10.2011, 20:57
    #37495980
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Shocker.Pro,

спасибо... только я немного не догнал... первый клики проходит норм. комбобокс появляется в нужном месте, открывается, но на второй клик таблица не реагирует, просто комбобокс снова теряет фокус и сворачивается. перемещается только после второго клика. в чём дело? пытался сначала закрыть - от этого ничего не меняется. пытался передать фокус другому элементу - тогда комбобокс вооообще не двигается с места... воть...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub MSFlexGrid1_Click()
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN,  0 ,  0 
Combo1.Visible = True
Combo1.Left = MSFlexGrid1.Left +  3400 
Combo1.Top = MSFlexGrid1.Top + (MSFlexGrid1.RowSel) * MSFlexGrid1.RowHeight( 0 )
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN,  1 ,  0 
Combo1.SetFocus
end sub
...
Рейтинг: 0 / 0
24.10.2011, 23:54
    #37496198
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
не очень понял, в чем проблема

попробуй сначала поставить фокус, а потом раскрывать
...
Рейтинг: 0 / 0
25.10.2011, 00:08
    #37496210
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Shocker.Pro,

если запустить приведённый выше код, 1 раз комбобокс появится в нужном месте и откроется. нажать на другую ячейку - ничего не произойдёт. придётся нажать 2 раза. мнее кажется, это как-то связано с фокусом... завтра буду думать на свежую голову
...
Рейтинг: 0 / 0
25.10.2011, 00:15
    #37496214
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
лень делать тестовый проект - сделай, выложи, посмотрю

кстати, обрати внимание на существование свойств CellLeft, CellTop, CellWidth и CellHeight
...
Рейтинг: 0 / 0
25.10.2011, 15:05
    #37497039
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Shocker.Pro,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
    ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Const CB_SHOWDROPDOWN As Long = &H14F

Private Sub Form_Load()
MSFlexGrid1.Rows =  10 
MSFlexGrid1.Cols =  10 
End Sub

Private Sub MSFlexGrid1_Click()
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN,  0 ,  0 
Combo1.Visible = True
Combo1.Left = MSFlexGrid1.Left +  200 
Combo1.Top = MSFlexGrid1.Top + (MSFlexGrid1.RowSel) * MSFlexGrid1.RowHeight( 0 )
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN,  1 ,  0 
Combo1.SetFocus
End Sub
при этом получается вот такая фигня.....----->>>
p/s CellLeft, CellTop, CellWidth и CellHeight - что за свойства? свойства чего?
...
Рейтинг: 0 / 0
25.10.2011, 15:48
    #37497114
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Я ведь сказал, что мне лень делать тестовый проект самому. По-моему это тебе надо, а не мне. Выложишь проект - посмотрю.
...
Рейтинг: 0 / 0
25.10.2011, 15:59
    #37497136
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Shocker.Pro,

не очень понимаю... это не сойдёт? ктрл С ктрл V... вот и весь проект. ну +мсгрид и момбобокс на форме
...
Рейтинг: 0 / 0
25.10.2011, 16:22
    #37497183
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Когда я давал тебе примеры с контролами, я почему-то не ленился выкладывать проекты, ты почему-то предпочитаешь дискутировать. Лично для тебя - нет, не сойдет.
...
Рейтинг: 0 / 0
25.10.2011, 16:35
    #37497215
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Shocker.Pro,
...
Рейтинг: 0 / 0
25.10.2011, 16:45
    #37497241
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Если не игнорировать мои советы, все работает корректно.

Мля, нафига я отвечаю????
Нафига вопросы задаются, если ответы не интересуют?
...
Рейтинг: 0 / 0
25.10.2011, 16:53
    #37497262
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Shocker.Pro,

каким советам? поставить фокус, а потом открывать? не помогает
...
Рейтинг: 0 / 0
25.10.2011, 17:08
    #37497308
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Тогда начнем с того, что ты не написал, чего именно ты хочешь добиться.
...
Рейтинг: 0 / 0
25.10.2011, 17:20
    #37497340
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Shocker.Pro,

мсгрид. столбик мсгрида. при нажатии на любую ячейку из этого столбика появляется на месте ячейки комбобокс и открывается. ***блаблабла промежуточные нужды*** при нажатии на другой ячейке комбобокс сворачивается и появляется в новом месте, открывается. но на деле не получается. закрытый комбобокс перемещается норм, а открытый нет. вручную перед перемещением
Код: plaintext
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN,  0 ,  0 
не помогает
...
Рейтинг: 0 / 0
25.10.2011, 17:24
    #37497347
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
он не может быть открытый при перемещении. у него своя очередь сообщений срабатывает и он всегда свернёт список
...
Рейтинг: 0 / 0
25.10.2011, 17:28
    #37497359
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Konst_One,

тогда в чём проблема?)) поч не перемещается так, как текстбокс?... код тот же, всё то же самое... p/s перемещается норм, если вырезать строчку с открытием
...
Рейтинг: 0 / 0
25.10.2011, 17:29
    #37497363
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
сначала закрыть (завершить событие), потом перемещать
...
Рейтинг: 0 / 0
25.10.2011, 17:37
    #37497381
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Konst_One,

т.е.? какое событие? закрыть комбобокс - не вариант. пробовал , даже под таймером.
...
Рейтинг: 0 / 0
25.10.2011, 17:39
    #37497390
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
надо выполнить событие CLICK по элементу открытого списка
...
Рейтинг: 0 / 0
25.10.2011, 17:42
    #37497401
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
В общем-то Костя прав.

Открой любое диалоговое окно (да хоть бы свойство проекта), разверни любой комбобокс, затем попробуй нажать любую кнопку или открыть другой комбобокс и т.п. С первого раза у тебя не выйдет - это нормальное поведение развернутого комбобокса.

Можно, конечно, исхитриться.....

А еще подумай, если комбобокс тебе не нужен для ввода текста, а только для выбора из списка, используй вместо него листбокс.
...
Рейтинг: 0 / 0
25.10.2011, 17:52
    #37497433
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Konst_One,

имитировать при помощи клика левой кнопки мыши по выделенному элементу открытого комбобокса? или как-то более цивилизованно?

Shocker.Pro,

какое объявление для листбокса?
Код: plaintext
SendMessage MyCombobox.hWnd, CB_SHOWDROPDOWN,  1 ,  0 
как и
Код: plaintext
SendMessage MyCombobox.hWnd, LB_SHOWDROPDOWN,  1 ,  0 
наверняка уже не проканает...
...
Рейтинг: 0 / 0
25.10.2011, 17:57
    #37497448
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Ну-ну. А для текстбокса у тебя какое объявление?
...
Рейтинг: 0 / 0
25.10.2011, 18:01
    #37497458
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Shocker.Pro,

неправильно выразился... но уверен, что ты и так понял) нуно событие для развёртывания... разворачивания... открытия листбокса(имитация нажатия на стрелочку)
...
Рейтинг: 0 / 0
25.10.2011, 18:04
    #37497466
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
комбобокс по феншую
Я тебе задал вполне конкретный вопрос.
Если ты перефразировал, то и я перефразирую.

Какое событие ты используешь для текстбокса для "развёртывания... разворачивания... открытия текстбокса(имитация нажатия на стрелочку)"?
Спрашиваю потому, что ты сказал, что у тебя текстбокс не вызывает вопросов.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / комбобокс по феншую / 25 сообщений из 58, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]