ToolStrip 종류의 메뉴에 대한 기본 구현은 니모닉 만 지원합니다. 예를 들어 "help"
대신 메뉴를 "&help"
으로 선언하면 UI 자동화에 "Alt+h"
이라는이 메뉴 항목이 액세스 키로 표시되어야합니다. 이 구현은 Fx, CTRL 등 다른 바로 가기 유형에서는 작동하지 않습니다.
검사 된 응용 프로그램을 소유하고 있으면 사용자 정의 액세스 키 문자열을 찾을 수 있습니다. 예를 들어 여기에 ToolStripMenuItem에서 파생 된 예제 클래스가 있으며 ShortcutKeyDisplayString
(기본값은 ShortcutKeys
으로 정의 된 경우에도 기본적으로 null입니다)에 설정된 값을 반환합니다.
MyItem item = new MyItem("Help");
item.ShortcutKeys = Keys.F1;
item.ShortcutKeyDisplayString = "F1";
fileToolStripMenuItem.DropDownItems.Add(item);
그리고 여기 샘플 클래스입니다 :
이 당신이 그것을 사용할 수있는 방법입니다
public class MyItem : ToolStripMenuItem
{
public MyItem(string text)
: base(text)
{
}
protected override AccessibleObject CreateAccessibilityInstance()
{
return new MyAccessibleItem(this);
}
// unfortunately we can't just derive from ToolStripMenuItemAccessibleObject
// which is stupidly marked as internal...
private class MyAccessibleItem : ToolStripDropDownItemAccessibleObject
{
public MyAccessibleItem(ToolStripMenuItem owner)
:base(owner)
{
Owner = owner;
}
public ToolStripMenuItem Owner { get; private set; }
public override AccessibleStates State
{
get
{
if (!Owner.Enabled)
return base.State;
AccessibleStates state = base.State;
if ((state & AccessibleStates.Pressed) == AccessibleStates.Pressed)
{
state &= ~AccessibleStates.Pressed;
}
if (Owner.Checked)
{
state |= AccessibleStates.Checked;
}
return state;
}
}
public override string KeyboardShortcut
{
get
{
return Owner.ShortcutKeyDisplayString;
}
}
}
}
는 "ShortcutKeys"라는 속성이없는가? – BakaBoing
모든 속성은 두 번째 스크린 샷에 있습니다. 그런 재산은 없습니다. –