VBA 在 CommandBar 上添加自定义按钮


许多用户都问到,能不能在 CommandBar 添加自定义按钮,去实现特殊的功能?
下面这篇文章将展示如何在 CommandBar 添加自定义按钮,及如何使用自定义按钮调用前台和后台事件:
主要步骤:
1.添加 Spread ButtonCommand 事件,提供 自定义 button 调用。

2. 重载 Render 添加自定义按钮:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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>

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Public Sub Workbook_Open() <br>Dim NewMenu As CommandBarPopup <br>Dim MenuItem As CommandBarControl <br>On Error Resume Next '如果菜单已经存在,则删除该菜单 <br>Application.CommandBars(1).Controls("价格标签").Delete <br>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 @   多见多闻  阅读(528)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示