如何在不按住 Alt 的情况下显示下划线(快捷方式)?
How to show underscore (shortcut) without holding Alt?
我用 ContextMenuStrip 创建了一个表单。我通过以下方式使用文本字段设置其快捷方式:“&File”。但是,当我通过单击鼠标右键打开此上下文菜单时,仅当我同时按住 Alt 按钮时才会显示下划线。有没有办法在不按住 Alt 键的情况下在单击鼠标时显示下划线?
您可以通过自定义 ToolStripSystemRenderer
:
修改文本呈现行为 (HidePrefix
)
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
contextMenuStrip1.Renderer = new AccessKeyMenuStripRenderer();
}
private void Form1_Click(object sender, EventArgs e)
{
contextMenuStrip1.Show(Cursor.Position);
}
}
class AccessKeyMenuStripRenderer : ToolStripSystemRenderer
{
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
e.TextFormat &= ~TextFormatFlags.HidePrefix;
base.OnRenderItemText(e);
}
}
}
我用 ContextMenuStrip 创建了一个表单。我通过以下方式使用文本字段设置其快捷方式:“&File”。但是,当我通过单击鼠标右键打开此上下文菜单时,仅当我同时按住 Alt 按钮时才会显示下划线。有没有办法在不按住 Alt 键的情况下在单击鼠标时显示下划线?
您可以通过自定义 ToolStripSystemRenderer
:
HidePrefix
)
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
contextMenuStrip1.Renderer = new AccessKeyMenuStripRenderer();
}
private void Form1_Click(object sender, EventArgs e)
{
contextMenuStrip1.Show(Cursor.Position);
}
}
class AccessKeyMenuStripRenderer : ToolStripSystemRenderer
{
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
e.TextFormat &= ~TextFormatFlags.HidePrefix;
base.OnRenderItemText(e);
}
}
}