在报表设计器中为上下文菜单项分配键盘快捷键

5

我目前正在使用BIDS(SQL Server 2008 R2,VS2008)创建一些报表。

我觉得我需要经常访问设计器中的对话框表达式...文本框属性...

textbox context menu

但是每次使用鼠标和上下文菜单都会减慢我的速度。(它们甚至不是菜单中的顶部项目!)在我的笔记本电脑上使用键盘更糟糕,因为它不幸没有上下文菜单按钮。

是否有一种方式可以分配键盘快捷键(如CTRL1CTRL2)来打开这些对话框?

我已尝试在键盘自定义对话框中找到它们,甚至尝试记录宏,但没有任何作用。

我最接近的是ShiftF10EShiftF10P,但这需要两只手。

我在几年前使用VS2005处理报表时成功了。


MSDN有一篇文章[http://msdn.microsoft.com/en-us/library/ms173782(v=sql.105).aspx],介绍如何在BIDS中自定义键盘快捷键。 - thomasswilliams
@thomasswilliams,您的链接无法打开,但我猜您指的是页面上建议我使用键盘自定义对话框的地方。我的问题是如何在该对话框中找到上述两个菜单项。 - adrianm
糟糕,我的维基标记习惯又犯了——SO在链接中包含尾随的方括号http://msdn.microsoft.com/en-us/library/ms173782(v=sql.105).aspx。 - thomasswilliams
然而,该页面未包括“表达式”和“文本框属性”键盘快捷键。您提供的SHIFT+F10+E等解决方案可能是最佳/唯一选项。 - thomasswilliams
1个回答

1
通常在Visual Studio(BIDS)中使用快捷方式,您可以转到 工具 --> 选项 --> 环境 --> 键盘
如果您筛选命令列表以使列表变短,则可以找到所需的命令,然后单击“按快捷键:”文本框,然后按下所需的快捷键组合。
我尝试了一下,与Expression相关的所有内容都不起作用:(。基本上很难知道所有这些命令是什么,也很难找到所需的命令。
但还有另一种选择。它有点绕,但很有效。它基本上涉及创建一个宏,该宏将向您的活动上下文发送shift-F10-E,然后将该宏绑定到所选的快捷键,例如CTRL-1。我正在使用Visual Studio 2008(从SQL Server 2008R2光盘安装)
1)通过选择视图 --> 其他窗口 --> 宏资源管理器来显示宏窗口
2)在“MyMacros”下创建一个新模块
3)输入此VB.NET代码:
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module UserShortcuts
    Public Sub ShowExpression()
        System.Windows.Forms.SendKeys.SendWait("+{F10}E")
    End Sub
End Module

4) 转到工具 --> 选项 --> 环境 --> 键盘

5) 在“显示包含命令”的文本框中键入“宏”,则上面代码模块中定义的子程序将出现,您可以将其突出显示。

6) 然后,您可以选择“按快捷键”文本框,输入 [CTRL] + 1 或您喜欢的任何内容,然后单击 [分配] 按钮。

7) 此 MSDN 页面 显示您可以选择用于 SendWait 方法的所有键选项。 如果要添加更多键盘快捷方式,请为每个添加更多 Sub() 条目,然后按照步骤 4 到 6 映射它们。

我在这里写了扩展版解决方案。


谢谢。只要单元格被选中,这个方法很有效。不幸的是,BIDS有时候会在你点击它时开始编辑单元格,然后宏就无法正常工作了。我尝试了稍微延迟一下,但没有成功。不过我还是会使用它。 - adrianm
菜单始终是上下文感知的,因此取决于您选择的单元格。单击单元格可能会很麻烦,是的,您必须在不单击单元格内部的情况下单击单元格才能使其起作用。实现这一点的方法是不要单击单元格中文本可见的部分,而是单击单元格的空白部分一次,它将选择该单元格;两次点击会进入单元格。在文本所在的单元格上单击一次,它将直接进入该单元格。 - Davos
我知道如何选择单元格。奇怪的是,如果我进入编辑模式,上下文菜单会打开,但即使“表达式”可用,它也不会被选中。当然这不是你的错,我非常满意你的解决方案。 - adrianm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接