首页 > 单独文章 > 正文

在Office2007用户界面中添加自定义组合框

时间:2008-04-05 09:07:18 作者:officeba 【认证】

Office2007 中可以使用XML和编程代码相结合,在Ribbon中添加自已的自定义组合框(comboBoxes),或者重复使用一些内置组合框。

用于添加控件的XML

可以使用comboBox元素来添加单个的组合框,通过使用属性如label属性来给组合框赋属性值。下面是代码:
<?xml version=”1.0″ encoding=”utf-8″ ?>
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui” loadImage=”LoadImage” >
   <ribbon startFromScratch=”false”>
      <tabs>
         <tab id=”tab1″ label=”ComboBox Demo” keytip=”z” >
            <group id=”group1″ label=”Demo Group”>
               <comboBox id=”comboBox1″
                  enabled=”true”
                  getText=”GetText”
                  getLabel=”GetLabel”
                  image=”camera.bmp”
                  getShowLabel=”GetShowLabel”
                  getShowImage=”GetShowImage”
                  getScreentip=”GetScreentip”
                  supertip=”This is a supertip for the combo box.”
                  keytip=”A1″
                  visible=”true”
                  getItemCount=”GetItemCount”
                  getItemLabel=”GetItemLabel”
                  getItemImage=”GetItemImage”
                  getItemScreentip=”GetItemScreentip”
                  getItemSupertip=”GetItemSupertip”
                  onChange=”OnChange” />
               <comboBox id=”comboBox2″
                  label=”Insert More Text.”
                  getText=”GetText”
                  imageMso=”TableDrawTable” />
            </group>
         </tab>
      </tabs>
   </ribbon>
</customUI>

通过赋予tab元素的label属性文本,本示例在Office Fluent Ribbon中添加标题为ComboBox Demo的自定义选项卡。该选项卡包含Demo Group组,组中包含两个名为comboBox1和comboBox2的自定义组合框。这些复选框通过visible属性、enabled属性和label属性等来定义其属性。可以通过设置该属性相对应的字符串,明确地给这些属性赋值,例如supertip属性,或者直接地指向编程代码过程。

现在来看看这段示例代码。enabled属性被设置为Ture,使得该组合框可用。当设置其为False时,该控件变灰,表明该组合框处于非活动状态。接下来的getText属性指向一个回调过程,来定义在开始显示时组合框里显示的文本。

getLabel属性也指向一个回调过程,返回显示在组合框中的标签。接着,comboBox1的image属性指定该组合框的自定义图像。同样,comboBox2的imageMso属性为该组合框指定内置的图像。

可以使用image和imageMso属性与customUI元素的loadImage属性一起作用。当使用image属性指定一个图像时,将调用loadImage回调过程来装载图像,然后,在Ribbon中显示该图像。

Public Function LoadImage(ByVal imageName As String) As Bitmap
    Dim assembly As Assembly = Assembly.GetExecutingAssembly()
    Dim stream As Stream = assembly.GetManifestResourceStream(”CodeSnippetTester.” & imageName)

    Return New Bitmap(stream)
End Function

在这个过程中,一个位图(bitmap)图像被返回到Microsoft Office。当调用该过程时,该图像作为一个集成的资源被获取并赋给Stream对象。最后,该图像作为Bitmap对象来返回。

getShowLabel属性和getShowImage属性指向涉及到Boolean值的回调过程。例如,设置getShowLabel属性为True导致在显示该控件时显示组合框的标签。如果想明确地设置属性的值,使用showLabel属性。

接下来,看看getScreentip属性。屏幕提示是在鼠标指针移动到Office Fluent Ribbon中某项目上时出现的小框,提供了所选对象的简单的上下文相关信息。同样,supertip属性(如果指向某回调过程,则为getSupertip属性)提供了关于该对象额外的信息。

另外对于getScreentip属性和supertip属性要注意的是,无论何时看到带get前缀的属性,该属性指向一个回调过程。因此,在代码中,getScreentip属性指向名为GetScreentip的回调过程。

注:回调过程的名称不一定与使用的属性名称相同。指向回调过程的属性也不一定在其前面都有get,例如在上面的XML代码中,onChange属性指向名为OnChange的回调过程。

supertip属性代表了控件属性的另一方面。一个没有get前缀的属性表示可以明确地给其赋文本值。在supertip属性的情形下,直接赋文本值取代了回调过程。也有例外,如onAction属性,该属性没有前缀get。

keytip属性为组合框赋予按键提示(KeyTip)。按键提示有时称作访问键或加速键,按键提示表明当使用键盘访问系统时,在访问程序功能时按下的键。要在自定义选项卡控件中使用按键提示,首先为选项卡设置按键提示,或者使用Microsoft Office赋予的缺省的按键提示。然后,为该控件赋予按键提示。例如,在代码中,选项卡有一个等于z的按键提示,comboBox1组合框有一个按键提示等于A1。当Office Fluent Ribbon显示时,按下Alt键来显示选项卡的按键提示。然后,按下z键使自定义选项卡获取焦点。最后,按下A+1组合键来激活该组合框。

再看上面的XML代码,设置visible属性为Boolean值确定是否在Ribbon中显示该组合框。接下来的一些属性指向组合框的下拉列表的项目。例如,getItemCount属性返回在用户单击组合框时下拉列表中的项目数。

getItemLabel和getItemImage属性执行与getLabel和getImage属性类似的功能。getItemScreentip和getItemSupertip属性指定下拉项目的屏幕提示和增强提示(supertips)。

最后,onChange属性指向一个回调过程,当单击该组合框里某项目时执行此过程。


相关文章

同类最新