powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
13 сообщений из 13, страница 1 из 1
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858186
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кончилась лафа... Завтра на работу и пахать, пахать и пахать... Ээээ, о чем это я?

Ну дык вот!

Можно ли в меню отображать справа от текста итема иконку?

И еще у меня меню используется для выбора нужного режима и не могу пока сообразить как мне определить индекс итема на котором кликнули мышей , чтобы его сделать checked.

И еще , но это уже про тулбар.

Есть у меня тулбар и на нем есть кнопка с выпадающим меню. Как при нажатии кнопки вывести на экран контестное меню , которое и привязано к этой кнопке? Ясно , что можно жать стрелку вниз , но юзер может сразу и не догадаться.
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858281
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли в меню отображать справа от текста итема иконку?

Вроде уже обсуждалось см. здесь: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaskdr/html/askgui11062001.asp


И еще , но это уже про тулбар.
Есть у меня тулбар и на нем есть кнопка с выпадающим меню. Как при нажатии кнопки вывести на экран контестное меню , которое и привязано к этой кнопке? Ясно , что можно жать стрелку вниз , но юзер может сразу и не догадаться.

Для второго вопроса лучше создать свою тему.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858333
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sa

Спасибо за подсказку по иконке в меню.

Мне надо разобраться сначала бы вот с какой проблемой.



Как при клике в меню (контекстном) узнать индекс того итема, где щелкнули.

Откопал на VB.NET форуме вот что:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Private Sub MenuProiz()
	Dim pr As PrZap.PrZap
	Dim iCount As Integer

	Try
		pr = New PrZap.PrZap(BuildCn)
		iCount = pr.MCount
		If iCount > - 1  Then
			Dim i As Integer
			For i =  0  To iCount -  1 
			'Me.MenuItem2.MenuItems.Add(pr.ArMenu(i))’ вот здесь создаются менюшеки их сейчас 7 , а будет еще больше.
				AddHandler Me.MenuItem2.MenuItems.Add(pr.ArMenu(i)).Click, AddressOf ClickMenu
			Next
		End If
	Catch ex As Exception
		MsgBox(ex.Message)
		Finally
		pr = Nothing
	End Try
End Sub

Private Sub ClickMenu(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click
	'Обработка клика меню.
	'Чтобы понять на какое именно меню кликнули
	'сделайте MessageBox.Show(CType(sender, Windows.Forms.MenuItem).Text)
	'этот же метод можно использовать и для обработки события Click меню, созданных вручную, указав Handles MenuItem4.Click, MenuItem5.Click, MenuItem6.Click...
End Sub

У меня похожая ситуация, т.е менюхи создаются программно и надо добавить обработчики клика для каждого итема в меню и потом например в обработчике (это же один метод будет) определить индекс итема на котором щёлкнули, что его сделать checked , а у другого скажем это сбросить. То есть что бы меню работало как switch. Продобился вчера всю ночь. Собственно научился создавать обработчик для добавленных программных путем итемов.


Надо бы этот кусок кода на VB.NET перевести на Шарп и как то определить индекс кликнутого итема в к_Меню.

По поводу тулбара ясно, но хотя бы надо с этим распинаться...
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858421
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКак при клике в меню (контекстном) узнать индекс того итема, где щелкнули.
Общий алгоритм. Привести sender к MenuItem. Пробежаться по соответствующей коллекции MenuItems и сравнить ее элементы с (MenuItem)sender.

авторКак при нажатии кнопки вывести на экран контестное меню , которое и привязано к этой кнопке?
В обработчика клика кнопки ContextMenu.Show
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858440
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bigheadman авторКак при клике в меню (контекстном) узнать индекс того итема, где щелкнули.
Общий алгоритм. Привести sender к MenuItem. Пробежаться по соответствующей коллекции MenuItems и сравнить ее элементы с (MenuItem)sender.

авторКак при нажатии кнопки вывести на экран контестное меню , которое и привязано к этой кнопке?
В обработчика клика кнопки ContextMenu.Show

Ув.Bigheadman

А кодом это нельзя продемонстрировать?
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858446
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо бы этот кусок кода на VB.NET перевести на Шарп и как то определить индекс кликнутого итема в к_Меню.

А что конкретно в этом коде интересует, я не вижу его полезность

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858460
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa
Надо бы этот кусок кода на VB.NET перевести на Шарп и как то определить индекс кликнутого итема в к_Меню.

А что конкретно в этом коде интересует, я не вижу его полезность

Код: plaintext
 uid  =  S a



Вот что меня интересовало

'Чтобы понять на какое именно меню кликнули
'сделайте MessageBox.Show(CType(sender, Windows.Forms.MenuItem).Text)

2 Bigheadman

//В обработчика клика кнопки ContextMenu.Show

Я так пробовал , но что в методе этом надо контрол указать, я указывал но компилятор сообщил , что кнопа эту нельзя так юзать.
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858475
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
System.Windows.Forms.MessageBox.Show(((Windows.Forms.MenuItem)sender).Text)

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858494
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sa

Спасибо. Работает.

Теперь я тут класс создал , наследующий Menuitem , чтобы было поле Tag

Вот

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
public class MyMenuItem:MenuItem
{

		int IntTag;

		public MyMenuItem()
		{
		
		
		}


		public int Tag // свойство
		{
			get
			{
                              return  IntTag;
			}
		
			set
			{
             
            if (value>=0)
			IntTag=value;
	
			}
		}


}


Что мне конструкторе указать или перегружать конструктор базового класса. Чтобы было тоже самое , но поле Tag прибавилось к каждому объекту.
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858539
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясню немного подробней.

Итем я создаю програмно юзая его конструктор с именем итема и добавлением обработчика события.

Соотвественно надо в кострукторе моего производного класса указать , что эти два параметра берутся от базового класса.
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858565
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eternal

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public MyMenuItem(string s,System.EventHandler OnClick) : base(s,OnClick)
		{
		
		this.Text=s;
			
		}


Наверное чухню морожу...
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858599
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вроде что то получилось

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
public class MyMenuItem:MenuItem
{

		int IntTag;

		public MyMenuItem(string s) : base(s)
		{
		
		this.Text=s;
			
			
		}


		public int Tag // свойство
		{
			get
			{
            return  IntTag;
			}
		
			set
			{
             
            if (value>=0)
			IntTag=value;
	
			}
		}


}



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
MyMenuItem m=new MyMenuItem("Хоб");
			m.Tag=2000; 
            m.Click+=new System.EventHandler(this.Hand); 
 
 

        mainMenu1.MenuItems.Add(m); 



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
private void Hand(object sender, System.EventArgs e) 
		{


System.Windows.Forms.MessageBox.Show(((MyMenuItem)sender).Index .ToString() );

		}

Вылетает индекс итема в результате.
...
Рейтинг: 0 / 0
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
    #32858634
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА кодом это нельзя продемонстрировать?
Можно, но лень. Хотя если я за этот ваш код получу вашу зарплату.... :-)
Поймите правильно. Нет никакого желания разжевывать вам код от и до.
Код: plaintext
1.
2.
3.
4.
5.
6.
foreach (MenuItem item in contextMenu.MenuItems)
{
    if (item == (MenuItem)sender)
    {
        ....
    }
}
Разве это так сложно?!

автор//В обработчика клика кнопки ContextMenu.Show

Я так пробовал , но что в методе этом надо контрол указать, я указывал но компилятор сообщил , что кнопа эту нельзя так юзать.

ContextMenu.Show(Control control, Point pos);
Разве ToolBarButton унаследован от класса Control?! Нет, не унаследован. О чем компилятор собственно и сообщил. Используйте, например ToolBar или Form.

PS. Перечитывайте, пожалуйста, ответ перед посылкой. Я здесь не сразу понял, что вы имели в виду.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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