powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / прозрачное меню на C#
3 сообщений из 3, страница 1 из 1
прозрачное меню на C#
    #32282033
newer_in_C#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста.
Хотел, чтобы меню было как в Visual Studio.
Только вот амперсант не работает как надо, - просто рисуется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
miFileNew = new MenuItem( "&New Book..." );
miFileNew.OwnerDraw = true, 
miFileNew.Click += new EventHandler(MenuFileNewOnClick);
miFileNew.DrawItem += new DrawItemEventHandler(MenuOnDrawItem);
miFileNew.MeasureItem += new MeasureItemEventHandler(MenuOnMeasureItem);
Menu.MenuItems[index].MenuItems.Add(miFileNew);
соответственно есть:
void MenuOnMeasureItem(object obj, MeasureItemEventArgs miea)
{
   miea.ItemWidth =  75 ;
   miea.ItemHeight =  16 ;
}
void MenuOnDrawItem(object obj, DrawItemEventArgs diea)
	{
   	diea.Graphics.FillRectangle(Brushes.White, diea.Bounds);
diea.Graphics.DrawString(((MenuItem)obj).Text, Font, Brushes.Black,  10 , diea.Index* 16 ); 

  if ((diea.State & DrawItemState.Selected) !=  0 ) 
{
  diea.Graphics.FillRectangle(new SolidBrush(Color.FromArgb( 100 , Color.LightSteelBlue)), diea.Bounds);
 }
}
Может вообще все не так надо было делать, а...?

PS. Сделать так, чтобы при выборе пунтка меню самого верхнего уровня - фон его поменял бы цвет, - что нужно писать для Click - ведь у EventArg ea - нет Graphics.
...
Рейтинг: 0 / 0
прозрачное меню на C#
    #32294456
thick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
void MenuOnDrawItem(object obj, DrawItemEventArgs e)
{
if ((e.State & DrawItemState.Disabled) != 0)
brush = SystemBrushes.FromSystemColor(SystemColors.GrayText);
else
{
if ((e.State & DrawItemState.Selected) != 0)
brush = SystemBrushes.HighlightText;
else
brush = SystemBrushes.FromSystemColor(SystemColors.MenuText);
}
}
...
Рейтинг: 0 / 0
прозрачное меню на C#
    #32301732
int33h
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
void MenuOnDrawItem(object obj, DrawItemEventArgs diea)
{
.........
StringFormat strfrm=new Stringformat();
strfrm.hotkeyprefix=hotkeyprefix.show;
DrawString(....,strfrm)
.....
}
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / прозрачное меню на C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]