powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Shortcut перевести в строку
3 сообщений из 3, страница 1 из 1
Shortcut перевести в строку
    #32680430
Astakhov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Требуется перевести Shortcut, так же как это делает MainMenu.
Т.е. если Shortcut = Shortcut.CtrlF2, то в меню мы увидем "Ctrl + F2", если же написать Shortcut.ToString() - получим "CtrlF2".
Можно воткнуть в ToString, всяческий Format, но он не помогает либо я не то пихаю, а каким макаром туда подставить провайдера и вообще где его брать, я не пойму.
...
Рейтинг: 0 / 0
Shortcut перевести в строку
    #32680543
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо в строку вставлять символ '+' перед capital буквой, либо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Shortcut sc=Shortcut.CtrlShiftM;
			
Keys     ks=(Keys)sc;
string   shc=string.Empty;
if((ks & Keys.Alt)!=0)     shc+="Alt+" ;   // или Keys.Alt.ToString()+"+"; 
if((ks & Keys.Control)!=0) shc+="Ctrl+";   // ??? Keys.Control.ToString() не стандарт для меню 
if((ks & Keys.Shift)!=0)   shc+="Shift+";  // или Keys.Shift.ToString()+"+"; 
shc+=((Keys)(ks & Keys.KeyCode)).ToString();

ks.ToString() - тоже не подарок - выдает "M, Shift, Control"

другой способ ("непопулярный") - вытаскивать из меню (если оно есть):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
[DllImport("user32.dll", CharSet=CharSet.Auto)]		
public static extern int GetMenuString(int hMenu, int wIDItem, StringBuilder lpString, int nMaxCount, uint wFlag);
public const uint MF_BYPOSITION = 0x400;

int           rc;
string        ac=string.Empty, bs;
StringBuilder sb=new StringBuilder(100);

if(GetMenuString(this.contextMenu1.Handle.ToInt32(), 0, sb, sb.Capacity, MF_BYPOSITION)>0)
{ bs=sb.ToString();
  ac=((rc=bs.LastIndexOf("\t"))<0 || (rc+1)>=bs.Length) ? "" : bs.Substring(rc+1);
}
...
Рейтинг: 0 / 0
Shortcut перевести в строку
    #32681799
Astakhov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное, не осознал, что Shortcut приводится к Keys.
А с меню - красиво. :-)
Приклоняю голову. :-)
Спасибо.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Shortcut перевести в строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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