从表单启用/禁用功能区按钮

时间:2016-10-25 21:35:16

标签: vb.net ribbon

嗨我带有复选框的Windows表单。我想启用/禁用单个按钮附加到我的功能区。伤人有人告诉我一个正确的方法吗?

部分XML代码功能区看起来像这样

<tab idMso="TabNewMailMessage">
        <group id="Kompresja2"
               label="Lab1">
          <toggleButton id="Kompresja6"
              imageMso="Smile"
              onAction="ProcedureX"
              getPressed="Wcisnieto"
              getEnabled="Czytaj_stan"
              label="Lab2"
              size="large"
          />
        </group>
      </tab>

1 个答案:

答案 0 :(得分:1)

  • getEnabled回调函数(在您的情况下为Czytaj_stan)检查按钮是否已启用 - 如果按钮应为
    则返回True 启用,否则为假。

  • 每当功能区控件无效时,都会调用getEnabled回调函数,这就是办公室应用程序决定需要它时,例​​如,当它被最小化时,或者通过调用[IRibbonUI-object].InvalidateControl("Kompresja6")使该控件无效或[IRibbonUI-object].Invalidate()重绘整个功能区([IRibbonUI-object].InvalidateControlMso("ID")使内置控件无效)来实现它。

  • 需要在自定义功能区加载时设置对IRibbonUI对象的引用。

为了完成这项工作,您需要:

  1. 通过在customUI XML标记中添加onLoad回调函数,确保可以获取对IRibbonUI对象的引用:<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  2. 实施他的Ribbon_Load回调函数并设置对IRibbonUI - 参数的引用。
  3. 实施getEnabled函数Czytaj_stan以决定何时启用该按钮。
  4. 让表单按钮首先修改Czytaj_stan中启用/禁用的条件,然后调用[IRibbonUI-object].InvalidateControl("Kompresja6")使功能区按钮无效。