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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ToolTip и композитный контрол 
:(
    Опции темы
Vyacheslav
Дата 12.1.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Имеется контрол
Код

    public class DropDownTreeViewWithSearch : UserControl
    {
       ...   

в который состоит из TextBox и Button.
И есть проблема: для подобного рода контролов не высвечиваются ToolTip message
Кто нибудь сталкивался с такой проблемой



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 12.1.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



По-моему, тултип (компонент) ToolTip кидается на форму, на контрол и т.п. и "живёт" в своей форме/контроле, независимо от других. Поэтому всё что связано с тултипом на UserControl'е, инкапсулируется внутри контрола и по идее никак не зависит от того, куда этот контрол помещён; тултип должен появляться в любом случае.


--------------------
user posted image
PM MAIL WWW   Вверх
Vyacheslav
Дата 12.1.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Мне кажется проблема не в этом. А в том, что при перемещении мышки над композитным контролом, обработку события перехватывают контролы входящие в нее, а для них сообщение не прописано. Оно прописано только для композитного контрола
Код

  this.toolTip.SetToolTip(this.myControl, resources.GetString("myControl.ToolTip"));

Надеюсь понятно объяснил. Я в С# пока полный профан


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 12.1.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(Vyacheslav @ 12.1.2006, 13:54 Найти цитируемый пост)
А в том, что при перемещении мышки над композитным контролом, обработку события перехватывают контролы входящие в нее

Сам по себе юзерконтрол обрабатывает события от мыши только когда курсор находится над пустой областью контрола, а от клавиатуры - только когда на нём стоит фокус. Наверное, проблема связана с недостатками, изначально заложенными в WinAPI, где controls обрабатывают сообщения самостоятельно (например, из-за этого окно не могло обработать WM_MOUSEMOVE от кнопки, расположенной в его клиентской области).


--------------------
user posted image
PM MAIL WWW   Вверх
Vyacheslav
Дата 12.1.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Так как быть. Дело в том, что у контрола ни у ToolTip отсутствуют методы насильственного вызова ToolTip'а. Сейчас на ум приходит одно решение: создать у композитного контрола метов SetToolTip и передать ему ToolTip сообщения. A уж он то и привяжет этот ToolTip и сообщения к контролам, входящим в композитный контрол. Ну это некрасивое решение. Есть идеи


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 12.1.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Остановился на следующем решении. Добавил к компоненту два свойства ToolTip и ToolTipText.
По крайней мере, позволяет устанавливать в дизайне. По моему мнению такой подход изначально более логичен, чем то, что предложено в фраймворке.


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 13.1.2006, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(Vyacheslav @ 12.1.2006, 16:33 Найти цитируемый пост)
По моему мнению такой подход изначально более логичен, чем то, что предложено в фраймворке.

Не соглашусь. А вдруг разработчик не хочет, чтобы весь контрол целиком был с одним и тем же тултипом? Если подходить теоретически, как вообще разработчики Framework могли бы распределить тултипы между:

1) композитным контролом вместе с его составными частями (usercontrol + children)
2) отдельными составными частями (children - кнопками и т.п.)
3) usercontrol, на котором расположены children

?


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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