VBA 在 CommandBar 上添加自定义按钮
许多用户都问到,能不能在 CommandBar 添加自定义按钮,去实现特殊的功能?
下面这篇文章将展示如何在 CommandBar 添加自定义按钮,及如何使用自定义按钮调用前台和后台事件:
主要步骤:
1.添加 Spread ButtonCommand 事件,提供 自定义 button 调用。
2. 重载 Render 添加自定义按钮:
protected override void Render(HtmlTextWriter writer) { Table table = FpSpread1.FindControl("cmdTable") as Table; //自定义按钮调用前台事件 DropDownList changepage = new DropDownList(); changepage.ID = "pageindex"; changepage.Items.Add("1"); changepage.Items.Add("2"); changepage.Items.Add("3"); changepage.Items.Add("4"); changepage.Items.Add("5"); changepage.Attributes.Add("onchange", "change()"); TableCell cell2 = new TableCell(); cell2.Controls.Add(changepage); table.Rows[0].Cells.Add(cell2); //自定义按钮调用后台事件 TableCell cell1 = new TableCell(); Button btn1 = new Button(); btn1.Text = "自定义按钮"; btn1.Text = "Button1"; btn1.Attributes.Add("onclick", ClientScript.GetPostBackEventReference(FpSpread1, "BtnCommand,-1,-1") + "; return false;"); cell1.Controls.Add(btn1); table.Rows[0].Cells.Add(cell1); base.Render(writer); } 复制代码 3.DropDownList 前台函数代码: <script type="text/javascript"> function change() { var pageindex = document.getElementById("FpSpread1_pageindex").value-1; FpSpread1.CallBack("Page,"+pageindex); return false; } </script>
Public Sub Workbook_Open()
Dim NewMenu As CommandBarPopup
Dim MenuItem As CommandBarControl
On Error Resume Next '如果菜单已经存在,则删除该菜单
Application.CommandBars(1).Controls("价格标签").Delete
Set NewMenu = Application.CommandBars( 1).Controls.Add(类型:=msoControlPopup, 之前:=11) '添加菜单标题并指定热键 NewMenu.Caption = "价格标签" '添加第一个菜单项 Set MenuItem = NewMenu.Controls.Add _ (Type:=msoControlButton) With MenuItem .Caption = "生成表" .OnAction = "生成表" End With Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton) With MenuItem .Caption = "生成标签" .OnAction = "价格标签生成" End With Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton) With MenuItem .Caption = "打印布局" .OnAction = "打印" End With End Sub ##模块代码