Отображение в NotifyIcon.Text больше 127 символов
с помощью такого метода:
Теперь хоть оно и ставит до 1000, но по прежнему отображает только первые 127 символов... А мне очень надо сделать больше. Создавать еще одну форму вместо подсказки как-то не то.. Как можно выйти из положения?
Как сделать так, чтобы при наведении указателя на 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 });
}
}
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 символов... А мне очень надо сделать больше. Создавать еще одну форму вместо подсказки как-то не то.. Как можно выйти из положения?
Зачем грязные хаки, тем более на C#?
Цитата: Alm3n
Зачем грязные хаки, тем более на C#?
Хаки мне не нужны:) Мне нужна всплывающая подсказка с текстом до 1000 символов.
Цитата: Tolias28
Хаки мне не нужны:) Мне нужна всплывающая подсказка с текстом до 1000 символов.
В документации ничего не сказано, о стандартных возможностях сделать это. Следовательно, остаётся только сабкласс. А как ты определил, что ставится именно 1000 символов, если выводится меньше? Потом читал со свойства?
Плюс свойство BalloonTipTitle может отображать текст длиной до 63 символов.
Если этого мало, то придётся делать свой контрол всплывающей подсказки.
Всем спасибо!