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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ToolStripMenuItem и цвета 
:(
    Опции темы
IEZ
Дата 23.9.2007, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Приветствую Всех!
Есть меню собираемое ручками (пример):

Код

ToolStripMenuItem tsmipopup = new ToolStripMenuItem();
tsmipopup.Name = "file";
tsmipopup.Text = Properties.Resources.mainmenu_file;

ToolStripMenuItem tsmi = new ToolStripMenuItem();
tsmi.Name = "exit";
tsmi.Text = Properties.Resources.mainmenu_exit;
tsmi.ToolTipText = Properties.Resources.mainmenu_exit_tooltiptext;
tsmi.Click += new EventHandler(BusinessEvent_Exit);
tsmi.Image = ilDevelopment.Images["exit.ico"];

tsmipopup.DropDownItems.Add(tsmi);

menuStrip.Items.Add(tsmipopup);



Все работает. Но интересует другой вопрос.
Если посомтреть на аттач меню, то можно заметить, что оно разделено по цветам на три области:
  • область иконок
  •  область текста меню
  •  область полосы выделения

Вопрос: как можно менять цвета этих областей?
Спасибо. 

Это сообщение отредактировал(а) IEZ - 23.9.2007, 17:17

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  sshot_4.png 10,49 Kb


--------------------
"Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух.
PM MAIL WWW ICQ   Вверх
yar
Дата 23.9.2007, 18:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нужно задать ToolStripManager.Renderer.
Его можно унаследовать от ToolStripProfessionalRenderer и всё перерисовывать самостоятельно.
А если только цвета установить нужно, то делаем наследника, например, от ProfessionalColorTable, и переопределяем значения цветов:

Код

    public class MyColorTable : ProfessionalColorTable
    {
        public override Color ButtonSelectedHighlight
        {
            get { return System.Drawing.Color.Red; }
        }

        // переопределяем другие цвета
        // ....

    }



Затем устанавливаем эту цветовую таблицу в новый рендерер:

Код

        static void Main()
        {
            ToolStripManager.Renderer = new ToolStripProfessionalRenderer(new MyColorTable());
            Application.Run(new Form1());
        }
// ...
// ...

При этом свойство RenderMode в менюшках должно быть ManagerRenderMode. 
Подробнее об ToolStripManager.Renderer можно почитать в MSDN.

Это сообщение отредактировал(а) yar - 23.9.2007, 18:13
--------------------
Если бы строители возводили здания так, как программисты пишут программы, первый же дятел уничтожил бы мировую цивилизацию.Джеральд Вайнберг
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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