bar.Items.Add(CreateToolbarButton(\,\List\,\,\)); // Portofolio
bar.Items.Add(CreateToolbarButton(\,\,\,\ofolioHot.png\));
// Bills and Deposits
bar.Items.Add(CreateToolbarButton(\,\&& Deposits\,\g\,\)); // Reports
bar.Items.Add(CreateToolbarButton(\,\,\,\ot.png\)); // Cash Flow
bar.Items.Add(CreateToolbarButton(\,\Flow\,\,\shFlowHot.png\)); // Budget
bar.Items.Add(CreateToolbarButton(\,\,\,\g\));
private void SetToolbarColorScheme(ColorScheme scheme) { // 设置工具栏自定义配色方案…… scheme.ItemText=Color.White; scheme.ItemHotText=Color.FromArgb(247,222,156); scheme.ItemPressedText=Color.FromArgb(247,222,156); // 这部分的颜色方案变化仅用于溢出项即如果他们不能安装在工具栏显示那他们不能在菜单中显示
scheme.ItemHotBackground=Color.FromArgb(80,80,80); scheme.ItemHotBackground2=Color.Empty; scheme.ItemHotBorder=Color.FromArgb(80,80,80); scheme.ItemPressedBackground=Color.FromArgb(91,91,91); scheme.ItemPressedBackground2=Color.Empty; scheme.ItemPressedBorder=Color.FromArgb(91,91,91); scheme.ItemExpandedText=Color.FromArgb(247,222,156); scheme.ItemExpandedBackground=Color.FromArgb(91,91,91); scheme.ItemExpandedBackground2=Color.Empty; scheme.ItemExpandedShadow=Color.Empty; scheme.MenuBackground=Color.FromArgb(91,91,91); scheme.MenuBackground2=Color.Empty; scheme.MenuBarBackground=Color.FromArgb(91,91,91); scheme.MenuBarBackground2=Color.Empty; scheme.MenuBorder=Color.Black; scheme.MenuSide=Color.FromArgb(91,91,91); scheme.MenuSide2=Color.Empty; }
private ButtonItem CreateToolbarButton(string name, string text, string imageName,
string hotImageName) { ButtonItem button=new ButtonItem(name,text); button.Image=new Bitmap(this.GetType(),imageName); button.HoverImage=new Bitmap(this.GetType(),hotImageName); button.PressedImage=button.HoverImage; button.HotTrackingStyle=eHotTrackingStyle.None; button.ButtonStyle=eButtonStyle.ImageAndText; button.ImagePosition=eImagePosition.Top; button.Cursor=Cursors.Hand; return button; }
控件PanelEx的使用
(1)下图中的六部分都是PanelEx。
(2)PanelEx有如上图的几种风格。
(3)PanelEx在“Text”属性里,可以使用Html语言,可以加入超链接,只是只能链接到某个函数名,注意的是:必须将该函数,在“属性”—“事件”选项卡中的“MarkupLinkClick”事件中,进行关联。 界面:
弹出式菜单
设置该图左边图的代码如下:
// 确定:在side-bar中使用的图都是可用的,
// 另外,确定,图的大小要一定小于Side-Bar的高度
DevComponents.DotNetBar.SideBarImage si=new DevComponents.DotNetBar.SideBarImage();
si.Picture=new Bitmap(typeof(Popup.Form1),\);
// If image exceeds the size of the popup menu this specifies the image alignment si.Alignment=DevComponents.DotNetBar.eAlignment.Bottom; // If there is no image specified gradient can be used si.GradientColor1=Color.Orange; si.GradientColor2=Color.Black;
m_PopupFromCode.PopUpSideBar=si;
弹出式工具栏
--1和2创建按钮(菜单选项)时,所用的函数一样,所用的风格一样,只是在最后弹出菜单时,使用的函数不一样,才导致的外观不一样。 --这是Menu的风格设置。 // 设置风格
DevComponents.DotNetBar.eDotNetBarStyle style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003;
if(((DevComponents.Editors.ComboItem)cboStyle.SelectedItem).Text != \) style=DevComponents.DotNetBar.eDotNetBarStyle.VS2005; m_PopupFromCode.Style=style;
// 如果弹出式菜单不属于ContextMenu(即没有在属性“contextMenuBar1上的ContextMenuEx”上进行相关设置)的话,该弹出式菜单必须在DotNetBar上进行注册 dotNetBarManager1.RegisterPopup(m_PopupFromCode);
// 把菜单放在按钮下面
Control ctrl=sender as Control;
Point p=this.PointToScreen(new Point(ctrl.Left,ctrl.Bottom)); // 下面这两句才是弹出菜单显示效果不一样的原因 m_PopupFromCode.PopupMenu(p); m_PopupFromCode.PopupBar(p);
--下面是Bar的风格设置
右键菜单
要想加入右键菜单,需要: 加入控件“ContextMenuBar”。 在“ContextMenuBar”上加入所需的右键菜单。
示例:在“ContextMenuBar”上,右键,选择“Add Context Menu”,出现“ButtomItem1”,设置其“Name”属性,然后在该ButtomItem1上,单击右键,添加一系列button,这才是具体的右键菜单。
在要加入右键菜单的控件上,设置属性“contextMenuBar1上的ContextMenuEx”,
使该属性值与“右键菜单”ButtomItem1相关联即可。 ContextMenuEx弹出菜单时,激活的事件是PopupOpen,可以对弹出的菜单进行
相应的设置。
控件ItemPanel和控件ItemContainer的使用
示例的使用效果
控件ItemPanel和控件ItemContainer都是用来放其他控件的容器,只是ItemPanel只能纵向放置,而ItemContainer都可以。
--示例
private void itemPanel2_ItemClick(object sender, System.EventArgs e) { if(sender is ButtonItem)
{
// 因为图表选择器在不同的容器里,ButtonItem.OptionGroup的设置将不会取消选择
// 按钮来自另一个容器,所以我们必须做
ButtonItem button = GetCheckedButton(itemPanel2.Items, sender as Button
Item);
if(button != null) button.Checked = false; } }
private ButtonItem GetCheckedButton(SubItemsCollection parentCollection, ButtonItem exclude) { foreach(BaseItem item in parentCollection) {
if(item is ButtonItem && item != exclude && ((ButtonItem)item).Checked) return item as ButtonItem; else if(item.IsContainer) { ButtonItem button = GetCheckedButton(item.SubItems, exclude); if(button != null) return button; } }
return null; }
private void columnContainer_Click(object sender, EventArgs e) { chartTypes.EnsureVisible( columnSelector ); columnSelector.Checked = true; }