Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отображение в NotifyIcon.Text больше 127 символов

37K
20 февраля 2012 года
Tolias28
48 / / 20.09.2010
Как сделать так, чтобы при наведении указателя на NotifyIcon всплывающая подсказка отображала больше 127 символов? Пока мне только удалось побороть исключение, которое вопило, что длина должна быть не более 64 символов с помощью такого метода:
Код:
using System;
using System.Windows.Forms;
using System.Reflection;

    public class Fixes {
      public static void SetNotifyIconText(NotifyIcon ni, string text) {
        if (text.Length >= 1000) throw new ArgumentOutOfRangeException("Text limited to 127 characters");
        Type t = typeof(NotifyIcon);
        BindingFlags hidden = BindingFlags.NonPublic | BindingFlags.Instance;
        t.GetField("text", hidden).SetValue(ni, text);
        if ((bool)t.GetField("added", hidden).GetValue(ni))
          t.GetMethod("UpdateIcon", hidden).Invoke(ni, new object[] { true });
      }
    }


Теперь хоть оно и ставит до 1000, но по прежнему отображает только первые 127 символов... А мне очень надо сделать больше. Создавать еще одну форму вместо подсказки как-то не то.. Как можно выйти из положения?
316
20 февраля 2012 года
Alm3n
889 / / 29.05.2009
Зачем грязные хаки, тем более на C#?
37K
20 февраля 2012 года
Tolias28
48 / / 20.09.2010
Цитата: Alm3n
Зачем грязные хаки, тем более на C#?


Хаки мне не нужны:) Мне нужна всплывающая подсказка с текстом до 1000 символов.

316
20 февраля 2012 года
Alm3n
889 / / 29.05.2009
Цитата: Tolias28

Хаки мне не нужны:) Мне нужна всплывающая подсказка с текстом до 1000 символов.


В документации ничего не сказано, о стандартных возможностях сделать это. Следовательно, остаётся только сабкласс. А как ты определил, что ставится именно 1000 символов, если выводится меньше? Потом читал со свойства?

297
20 февраля 2012 года
koodeer
1.2K / / 02.05.2009
Можно попробовать использовать BalloonTipText. Этому свойству можно назначить текст любой длины. Правда, отображаться будет максимум 255. Достаточно?
Плюс свойство BalloonTipTitle может отображать текст длиной до 63 символов.

Если этого мало, то придётся делать свой контрол всплывающей подсказки.
37K
20 февраля 2012 года
Tolias28
48 / / 20.09.2010
BalloonTipText не подходит. Я уже не нуждаюсь в решении этой проблемы, так как реализовал подсказку по другому - сделал ее на строке статуса в главном окне приложения. Мне этого хватает.
Всем спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог