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 ##模块代码

  

posted @ 2022-03-14 20:47  多见多闻  阅读(556)  评论(0)    收藏  举报