C# 在ToolStripItem菜单项上设置位置辅助功能信息

C# 在ToolStripItem菜单项上设置位置辅助功能信息,c#,.net,winforms,accessibility,C#,.net,Winforms,Accessibility,在我的应用程序中,我使用填充的来呈现程序UI中的简单选项菜单。我正在努力使我的应用程序尽可能容易访问,我正在考虑的一件事是向菜单选项添加位置信息。例如,当用户选项卡在屏幕阅读器(NVDA、叙述者、JAWS等)打开的情况下选择第一个菜单项时,屏幕阅读器应该读取类似“菜单项1,1/3”的内容,假设有三个菜单项 我已经能够通过在我用来填充菜单的ToolStripItem实例上使用“Accessibility\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

在我的应用程序中,我使用填充的来呈现程序UI中的简单选项菜单。我正在努力使我的应用程序尽可能容易访问,我正在考虑的一件事是向菜单选项添加位置信息。例如,当用户选项卡在屏幕阅读器(NVDA、叙述者、JAWS等)打开的情况下选择第一个菜单项时,屏幕阅读器应该读取类似“菜单项1,1/3”的内容,假设有三个菜单项


我已经能够通过在我用来填充菜单的
ToolStripItem
实例上使用“Accessibility\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。但是,我无法看到任何允许我添加位置可访问性信息的内容,这些信息将描述菜单列表中的相对位置。我想也许我可以用
ToolStripItem
的附件做些什么,但我只是从可访问性的东西开始,我不是很确定。有什么想法吗?

您可以处理ToolStripMenuItems的MouseEnter/MouseLeave事件(所有事件都只有一个事件处理程序),获取当前项目(
var Item=sender as ToolStripMenuItem;
),获取所有者的项目计数(
int count=Item.Owner.items.count;
),获取当前项目的索引(
int index=item.Owner.Items.IndexOf(item)+1;
)并设置
ToolStripMenuItem.AccessibleDescription
string content=$“菜单项{index},{count}的{index}”;item.AccessibleDescription=content;
。在MouseLeave上清除。这是一个好主意,我必须找出如何在其中获取本地化字符串,但我会看看我是否可以实现这个想法。谢谢!