|
本帖最后由 excelhomesnake 于 2016-6-22 20:57 编辑
图1
一,通过操作,添加一个Ribbon1,从解决方案管理器中,点选"显示所有文件",你会看到Ribbon1.vb下还有两个文件.点看Ribbon1.Designer.vb的代码,你会看到如图的代码.
1,这里面的定义了一个类,名字居然也是叫Ribbon1 .这样不就相同的命名空间下有两个相同名字的类吗?但,因为用了Partial关键字,因此这是一个部分类.其实也只是说,这个类的定义,可以写在多个文件中.最后编译的时候,会把所有的文件合起来编译成一个Ribbon1类.你想象一下,最后所有同名的类里面的方法和属性都塞到一个文件中的时候.我想你应该明白为什么会错误的吧
2,我往这个功能区添加了一个按钮叫Button1.继续留意Ribbon1.Designer.vb的代码.找到方法InitializeComponent.里面你可以看到当你运行的时候,那些按钮什么鬼的控件是怎样通过这些代码生成出来的.这个方法里面的代码,就是整个画面的布局代码了.
3,留意方法InitializeComponent结束后,下面有几句定义变量的语句.Friend WithEvents Button1 As .就是刚刚点2里面用到的控件的变量了.不然你怎么可能在Ribbon1.vb文件写代码的时候,可以直接引用自己刚刚拖到界面的控件呢?想一想.
4,继续留意Ribbon1.Designer.vb的代码.在类Ribbon1定义结束后,又定义了一个类ThisRibbonCollection.还是部分类啦.这个类的另一个定义文件其实在ThisWorkbook.Designer.vb文件中.........这个类其实就是你用Globals.Ribbons返回对象了.正因为有这里的定义,才有你后来可以使用Globals.Ribbons.Ribbon1.
.................................
这里才回答你的问题,我真是啰嗦了.
此时如果你还想增加一个叫Ribbon2的类,界面布局与刚刚的Ribbon1一样.那么
1,通过操作新增一个Ribbon2
2,打开Ribbon2.Designer.vb代码,把方法InitializeComponent中的代码用Ribbon1的方法InitializeComponent的来 替换.
3,把Ribbon2中,方法InitializeComponent结束后,下面有几句定义变量的语句,也用Ribbon1的定义变量语句来替换.
到这里,应该就可以了.虽然我没有试验过.即使有错误,如果你真的理解我上面说的.应该就明白怎样修改的.
|
|