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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ComboBox - высота строк 
:(
    Опции темы
Sergey_New
Дата 31.7.2008, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

    Public Declare Function SendMessage Lib "coredll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, 
    _ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Const CB_SETITEMHEIGHT = 339    
    Const CB_GETITEMHEIGHT = 340
    SendMessage(cbTest.Handle, CB_SETITEMHEIGHT, -1, 60)
    SendMessage(cbTest.Handle, CB_SETITEMHEIGHT, 0, 60)

Первое сообщение устанавливает высоту строк (60) раскрытого списка. 
Второе - высоту ComboBox. 
Высота строк при активации ComboBox остается вновь установленной, а высота контрола восстанавливается в стандартную. Как этого избежать? 



PM MAIL   Вверх
Sergey_New
Дата 31.7.2008, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добавление: нужно для CF
PM MAIL   Вверх
KLUBS
Дата 1.8.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а можно же самому перерисовать, и будет тебе высота, какая хочешь
PM MAIL ICQ Skype   Вверх
Sergey_New
Дата 2.8.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(KLUBS @ 1.8.2008,  23:50)
а можно же самому перерисовать

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


Шустрый
*


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

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



Можно создать свой UserControl унаследовав ComboBox
и там уже переопределить все что нужно smile
PM MAIL ICQ Skype   Вверх
Sergey_New
Дата 2.8.2008, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нельзя ли пример, как переопределять высоту?
PM MAIL   Вверх
Sergey_New
Дата 7.8.2008, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот, что получилось. Просьба прокомментировать.

Код

Public Class ComboBoxEx
    Inherits Control
    Public cb As New Windows.Forms.ComboBox
    Private Declare Function SendMessage Lib "coredll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Const CB_SETITEMHEIGHT = 339
    Const CB_GETITEMHEIGHT = 340

    Public Sub New()
        With Me
            .Controls.Add(cb)
        End With
    End Sub

    Private Sub ComboBoxEx_ParentChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ParentChanged
        cb.Width = Me.Width
        cb.Height = Me.Height
        SendMessage(cb.Handle, CB_SETITEMHEIGHT, 0, Me.Height - 8)  ' высота строк
    End Sub

    Private Sub ComboBoxEx_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        SendMessage(cb.Handle, CB_SETITEMHEIGHT, -1, Me.Height - 8)  ' высота элемента
    End Sub
End Class

PM MAIL   Вверх
nagg
Дата 7.8.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я бы сделал суровее но без винапи - добавил бы ImageList с элементами 1*N (n- высота)
(тем же способом увеличиваю строки в ListView)
--------------------
I am the State...
PM MAIL WWW ICQ Skype   Вверх
Sergey_New
Дата 7.8.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



nagg, 
для ListView я тоже делаю с ImageList.
Не могу сообразить, как это применить для ComboBox в CF :(
PM MAIL   Вверх
nagg
Дата 8.8.2008, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А там разве нету стандартного свойства ImageList ? извините вероятно напутал  smile 
--------------------
I am the State...
PM MAIL WWW ICQ Skype   Вверх
Sergey_New
Дата 8.8.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А я так надеялся!    smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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