2017-03-02 36 views
2

我刚刚开始从VBA迁移到C#。我有大约100个VBA宏进行转换,其中大约25个要么在自定义功能区条目中,要么映射到诸如alt-P之类的按键。如何将VSTO C#代码连接到功能区和/或键盘快捷键

唯一的reference我可以找到说我需要保留一些VBA代码才能做到这一点。这样的解决方案是完全不可接受的,我想完全免除VBA。我不禁想到这就像在特斯拉的特大号干草中饲养一捆干草来养活这匹马。

有没有更好的方法?

+0

您是否尝试过使用 '快捷键提示'? http://stackoverflow.com/questions/12774412/how-to-set-keytip-on-a-ribbon – therea1wags

回答

0

按[Alt]键获取keytip参考。按照以下我想引用“脚本帮助”功能区是“Y2”。

enter image description here

然后按[ALT] + “Y” + “2” 以显示该色带控制按键提示控制的引用。根据以下我想参考“清洁数据”按钮是“Y7”。

enter image description here

然后你可以使用的SendKeys按了按键提示引用。通过添加下面的代码。

public void CallButtonFromAnotherRibbon() 
    { 
     try 
     { 
      SendKeys.Send("%"); 
      SendKeys.Send("Y"); 
      SendKeys.Send("2"); 
      SendKeys.Send("%"); 
      SendKeys.Send("Y"); 
      SendKeys.Send("7"); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString(), "Unexpected Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
    } 

Microsoft Documentation for KeyTips

Microsoft Documentation for SendKeys