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

Ну дык вот!

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

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

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

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

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


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

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

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
11.01.2005, 09:04
    #32858333
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
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
11.01.2005, 10:09
    #32858421
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
авторКак при клике в меню (контекстном) узнать индекс того итема, где щелкнули.
Общий алгоритм. Привести sender к MenuItem. Пробежаться по соответствующей коллекции MenuItems и сравнить ее элементы с (MenuItem)sender.

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

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

Ув.Bigheadman

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

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

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

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

Код: plaintext
 uid  =  S a



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

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

2 Bigheadman

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

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

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
11.01.2005, 10:40
    #32858494
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
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
11.01.2005, 10:58
    #32858539
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
Поясню немного подробней.

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

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

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


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

Код: 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
11.01.2005, 11:30
    #32858634
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked?
авторА кодом это нельзя продемонстрировать?
Можно, но лень. Хотя если я за этот ваш код получу вашу зарплату.... :-)
Поймите правильно. Нет никакого желания разжевывать вам код от и до.
Код: 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
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопросы по меню. Как иконку отображать в меню? Как сделать переключение Checked? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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