【问题标题】:Disable bold button禁用粗体按钮
【发布时间】:2012-11-13 22:42:46
【问题描述】:

我想禁用 Excel 工作表中的“粗体”切换按钮。

我该怎么做?

我有以下代码,但它不起作用:

CommandBarControl test = excel1.Application.CommandBars["Formatting"].FindControl(Id:113,Recursive:true);
if (test.Enabled)
{
MessageBox.Show(test.Caption + " enabled");
test.Visible = false;
test.Enabled = false;
}

我认为它不起作用,因为他们从 Office 2007 开始使用功能区控件。

谁能帮助如何控制特定按钮?这样我就可以更改它的属性,默认启用/禁用它等等。

【问题讨论】:

  • 虽然我没有回答您的问题,但我在想当您禁用按钮时,用户仍然可以 CTRL+B 加粗文本。 VBA 库没有事件,但 VSTO 可能(我从未使用过它)类似 formatComplete 或 cellFormat,甚至 cellLeave 来检查格式,然后将其从粗体更改。任何可以隔离粗体事件的东西。甚至可以通过扩展单元格类的文本格式访问器来创建一个自定义事件,以引发一个粗体事件供您使用。 (如果可能的话)在 C# 中

标签: c# excel c#-4.0 excel-2007 office-2007


【解决方案1】:

恐怕答案确实是不可能的。

我一直在研究类模块的可能性,因为我认为使用类,您可以拦截将文本更改为粗体的事件,然后取消该事件。但是,我能找到的一切都与其他事件有关(值更改、计算、工作簿结构更改等)。

即使它可以工作,它也会涉及一些严肃的编码并且容易出错。

也许你用错了方法 - 你删除这个按钮的原因是什么?您的问题可能还有另一种解决方案。 如前所述,删除按钮不会阻止使用 ctrl+B 或粘贴粗体文本的可能性 - 您根本无法阻止这种情况。

【讨论】:

    【解决方案2】:

    我敢肯定,这不是您想要的答案,但恐怕无法做到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多