1、DotNet 第三方控件使用笔记0、1) ButtonX 控件可实现如下效果:在 ButtonX 上,是否显示 “图像,取决于 “images“属性2)在“buttomItem“控件中,是否“只是显示图像” , ”只是文本 ”,还是“图像和文本都显示” ,取决于1、 BalloonTio 控件(气泡提示)(1) 使用效果1) 效果一:在鼠标在控件上面停留时,出现提示信息,如下图:2) 效果二:当控件获得焦点时,也出现如上图一样的信息。(2) 实现上述两种效果的途径1) 将 BalloonTip 控件的“ShowBalloonOnFacus ”属性设置为 “False”即可实现,效果一。2) 将
2、“ShowBalloonOnFacus”属性设置为“True” ,即可实现效果二。(3) 设置 BalloonTip 显示的内容:在欲设置该属性的控件的“BalloonTioOnFocus 上的 BalloonCaption”和“BalloonTioOnHover 上的 BalloonCaption”属性中,分别设置这两种效果的“标题”属性; 在“BalloonTioOnFocus 上的 BalloonText”和在“BalloonTioOnHover 上的BalloonText”属性中,分别设置这两种效果的“显示内容”的属性。(4) 属性“AlerAnimation”设置“BalloonTi
3、p”出现的效果,(5) “BalloonTip”除了出现在该控件附近,还可以出现在屏幕的右下角,示例程序如下:private AlertCustom m_AlertOnLoad=null;m_AlertOnLoad=new AlertCustom();Rectangle r=Screen.GetWorkingArea(this);m_AlertOnLoad.Location=new Point(r.Right-m_AlertOnLoad.Width,r.Bottom-m_AlertOnLoad.Height);m_AlertOnLoad.AutoClose=true;m_AlertOnLoad
4、.AutoCloseTimeOut=15;m_AlertOnLoad.AlertAnimation=eAlertAnimation.BottomToTop;m_AlertOnLoad.AlertAnimationDuration=300;m_AlertOnLoad.Show(false);/false:指示该控件是否需要获得焦点才出现“BalloonTip”(6)“BalloonTip”除了可以通过“添加控件”的方式使用,也可以通过编程的方式使用,示例程序如下:DevComponents.DotNetBar.Balloon b=new DevComponents.DotNetBar.Ballo
5、on();b.Style=eBallonStyle.Alert;b.CaptionImage=balloonTipFocus.CaptionImage.Clone() as Image;b.CaptionText=“Balloon Status Information“;b.Text=“Balloons are now enabled for Balloon Tip Test area. Hover mouse over the area and set the focus to any control.“;b.AlertAnimation=eAlertAnimation.TopToBotto
6、m;b.AutoResize();b.AutoClose=true;b.AutoCloseTimeOut=4;b.Owner=this;/指示父控件b.Show(button2,false);/button2:指示在那个控件附近出现“BalloonTip”(7)还可以对“BalloonTip”出现时的效果进行程序控制,如下:/ BalloonTriggerControl property returns control that invoked balloon/ BalloonTriggerControl属性返回触发“BalloonTip”的控件if(balloonTipHover.Ballo
7、onTriggerControl=groupBox1)/ BalloonControl is already prepared Balloon control that is just about to be displayed/ Setting BalloonControl to null will cancel balloon displayPoint p=Control.MousePosition;/ Adjust cursor position so cursor is below tipp.Offset(-balloonTipHover.BalloonControl.TipOffse
8、t,balloonTipHover.BalloonControl.TipLength+4);/Offset属性将点p进行平移balloonTipHover.BalloonControl.Location=p;(8)与之类似的是 DotNetToolTip所有控件都有的“ToolTip”属性,也可以是控件在鼠标划过时出现类似的东西,如下图2、 DotNetBarManager控件与 Bar控件的使用示例效果如下图:(1) DotNetBarManager控件-将该控件添加到工程后,将给 Bar控件提供了“停靠点(DockSite)”,可以实现是工具栏在窗体的“上、下、左、右“摆放。可以通过程序实
9、现,也可以通过“属性页“的”Dock“属性进行设置。bar.DockSide = eDockSide.Top;(2) DotNetBarManager控件,通过右键菜单可以轻松实现如下图所示的布局。通过拖动也可以轻易的实现如下视图的布局与上图相应的代码:/ Create new document and add it to existing barDevComponents.DotNetBar.DockContainerItem dockItem=new DevComponents.DotNetBar.DockContainerItem();dockItem.Text=“Custom Docu
10、ment“;/ Add control to itTextBox t=new TextBox();t.AutoSize=false;t.Multiline=true;t.Text=dockItem.Text;/ PanelDockContainer will be used to host any controls. It provides automatic focus management so focused/ document tab appears boldDevComponents.DotNetBar.PanelDockContainer panel = new DevCompon
11、ents.DotNetBar.PanelDockContainer();t.Dock = DockStyle.Fill;panel.Controls.Add(t);dockItem.Control=panel;bar1.Items.Add(dockItem);if(!bar1.Visible)bar1.Visible=true;elsebar1.RecalcLayout();/ Optimize display by disabling layout for all dock sitesdotNetBarManager1.SuspendLayout=true;tryforeach(DevCom
12、ponents.DotNetBar.Bar bar in dotNetBarManager1.Bars)if(bar.DockSide=DevComponents.DotNetBar.eDockSide.Document)foreach(DevComponents.DotNetBar.DockContainerItem dock in bar.Items)dock.Visible=true;if(!bar.Visible)bar.Visible=true;finallydotNetBarManager1.SuspendLayout=false;(2)下面的代码通过编程的方式实现如下图所示的功能
13、private void Form1_Load(object sender, System.EventArgs e)dotNetBarManager1.DockTabChange+=new DotNetBarManager.DockTabChangeEventHandler(this.DockTabChanged);CreateBottomBarAutoHide();CreateLeftDockedBars();private void DockTabChanged(object sender, DockTabChangeEventArgs e)/ Sync caption of the ba
14、r with the currently selected dock tabBar bar=sender as Bar;if(bar=null | e.NewTab=null)return;bar.Text=e.NewTab.Text;private void CreateBottomBarAutoHide()Bar bar=new Bar(“Bottom Bar in auto-hide state“);bar.Name=“bottomBar“;bar.LayoutType=eLayoutType.DockContainer; / Dock Container Layout needed f
15、or dockable windowsbar.Stretch=true; / Dockable windows stretch to fill containerbar.AutoHideAnimationTime=0; / Some controls do not support animation so turn it offbar.GrabHandleStyle=eGrabHandleStyle.Caption; / Dockable Windows have captionsdotNetBarManager1.Bars.Add(bar); / DotNetBar needs to be
16、aware of the bar so it can manage its docking etc./ Create hosted controlsDockContainerItem dockItem=new DockContainerItem(“bottomDockItem1“,“First dock item“);bar.Items.Add(dockItem);/ Create control that we want to host on dockable windowUserControl1 dockedControl=new UserControl1();dockedControl.
17、label1.Text=bar.Name+“ - “+dockItem.Text;dockedControl.BackColor=Color.Azure;dockItem.Control=dockedControl; / Specify that control is hosted on the dock containerdockItem.Height=128; / Specify the height of the dockable container and at the same time control/ Create second dock container and add it
18、 to the bardockItem=new DockContainerItem(“bottomDockItem2“,“Second dock item“);bar.Items.Add(dockItem);dockedControl=new UserControl1();dockedControl.label1.Text=bar.Name+“ - “+dockItem.Text;dockedControl.BackColor=Color.Aquamarine;dockItem.Control=dockedControl; / Specify that control is hosted on
19、 the dock container/ Dock bar to bottom dock sitedotNetBarManager1.BottomDockSite.GetDocumentUIManager().Dock(bar);dockItem.Height=128; / Specify the height of the dockable container and at the same time controlbar.RecalcLayout(); / Apply all changes.bar.AutoHide=true; / Place bar in auto-hide mode.
20、 Bar needs to be docked before it can be places in auto-hide modeprivate void CreateLeftDockedBars()/ Dock first two bars side by side and dock third bar next to them.Bar bar=new Bar(“Bar1“);bar.Name=“leftBar1“;bar.LayoutType=eLayoutType.DockContainer; / Dock Container Layout needed for dockable win
21、dowsbar.Stretch=true; / Dockable windows stretch to fill containerbar.AutoHideAnimationTime=0; / Some controls do not support animation so turn it offbar.GrabHandleStyle=eGrabHandleStyle.Caption; / Dockable Windows have captionsbar.CanHide=true;/ Create DockContainerItem for the bar. The item should
22、 be added before the bar is docked.DockContainerItem dockItem=new DockContainerItem(“leftDockItem1“,“Top Left Dock Container“);bar.Items.Add(dockItem);/ Create control that is hosted on dock containerUserControl1 dockedControl=new UserControl1();dockedControl.label1.Text=bar.Name+“ - “+dockItem.Text
23、;dockedControl.BackColor=Color.Khaki;dockItem.Control=dockedControl; / Specify that control is hosted on the dock containerdotNetBarManager1.Bars.Add(bar); / DotNetBar needs to be aware of the bar so it can manage its docking etc.dotNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar); /Perf
24、orms actual docking of the Bar to the specified dock sitedockItem.Width=128; / Specify Width of dock container item after it is docked/ Create second bar and dock it below the first bar but still on the same lineBar bar2=new Bar(“Bar2“);bar2.Name=“leftBar2“;bar2.LayoutType=eLayoutType.DockContainer;
25、 / Dock Container Layout needed for dockable windowsbar2.AutoHideAnimationTime=0; / Some controls do not support animation so turn it offbar2.Stretch=true; / Dockable windows stretch to fill containerbar2.CanHide=true;bar2.GrabHandleStyle=eGrabHandleStyle.Caption; / Dockable Windows have captions/ A
26、dd new Dock Container to the bar, should be done before adding the bar so size can be calculated properlydockItem=new DockContainerItem(“leftDockItem2“,“Bottom Left Dock Container“);bar2.Items.Add(dockItem);/ Create control that is hosted on dock containerdockedControl=new UserControl1();dockedContr
27、ol.label1.Text=bar.Name+“ - “+dockItem.Text;dockedControl.BackColor=Color.Lavender;dockItem.Control=dockedControl; / Specify that control is hosted on the dock containerdotNetBarManager1.Bars.Add(bar2); / DotNetBar needs to be aware of the bar so it can manage its docking etc.dotNetBarManager1.LeftD
28、ockSite.GetDocumentUIManager().Dock(bar, bar2, eDockSide.Bottom); / Dock new bar2 below the bar that we created previously/ Create third bar that is docked next to the first and second/ i.e. on the line 1bar=new Bar(“Bar3“);bar.Name=“leftBar3“;bar.LayoutType=eLayoutType.DockContainer; / Dock Contain
29、er Layout needed for dockable windowsbar.AutoHideAnimationTime=0; / Some controls do not support animation so turn it offbar.Stretch=true; / Dockable windows stretch to fill containerbar.CanHide=true;bar.GrabHandleStyle=eGrabHandleStyle.Caption; / Dockable Windows have captionsdockItem=new DockConta
30、inerItem(“leftDockItem3“,“Left Dock Container line 1“);bar.Items.Add(dockItem);/ Create control that is hosted on dock containerdockedControl=new UserControl1();dockedControl.label1.Text=bar.Name+“ - “+dockItem.Text;dockedControl.BackColor=Color.LemonChiffon;dockItem.Control=dockedControl; / Specify
31、 that control is hosted on the dock containerdotNetBarManager1.Bars.Add(bar); / DotNetBar needs to be aware of the bar so it can manage its docking etc.dotNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar);/ Setting the width of the dock site will also scale the bars docked inside,/ howeve
32、r the size should be large enough to accomodate all bars including the constraints like MinimumSize etc.dotNetBarManager1.LeftDockSite.Width = 150;BaseItem:Defines the base class for items that are used by DotNetBar示例:BaseItem item = sender as BaseItem;(3) 添加“菜单项“也可以通过两种方式实现1)“可视化“的方式在“设计器“里可以通过”右键“
33、来实现;2)程序的方法private void CreateBar()/ Create a new Bar/创建BarBar bar=new Bar(“Standard“);bar.CanHide=true;bar.Style=eDotNetBarStyle.Office2003;bar.GrabHandleStyle=eGrabHandleStyle.StripeFlat;bar.WrapItemsDock=true;bar.WrapItemsFloat=false;/ Add Items to it/向Bar内添加项ButtonItem item, fileItem;/ New添加新建it
34、em=new ButtonItem(“bNew“);-item.ImageIndex=0;/ item.Image = imageList1.Images0;-item.Text=“item.Shortcuts.Add(eShortcut.CtrlN);item.Category=“Standard“;bar.Items.Add(item);m_DotNetBar.Items.Add(item.Copy(); / This will create Category Entry/ Openitem=new ButtonItem(“bOpen“);item.ImageIndex=1;item.Te
35、xt=“item.Shortcuts.Add(eShortcut.CtrlO);item.Category=“Standard“;bar.Items.Add(item);m_DotNetBar.Items.Add(item.Copy();/ Add Sub items to the Open, something like recently used files.fileItem=new ButtonItem(“file1“);fileItem.Text=“item.SubItems.Add(fileItem);fileItem=new ButtonItem(“file2“);fileItem
36、.Text=“item.SubItems.Add(fileItem);fileItem=new ButtonItem(“file3“);fileItem.Text=“item.SubItems.Add(fileItem);fileItem=new ButtonItem(“file4“);fileItem.Text=“item.SubItems.Add(fileItem);fileItem=new ButtonItem(“file5“);fileItem.Text=“item.SubItems.Add(fileItem);/ Closeitem=new ButtonItem(“bClose“);item.ImageIndex=2;item.Text=“item.Shortcuts.Add(eShortcut.CtrlX);item.Category=“Standard“;bar.Items.Add(item);m_DotNetBar.Items.Add(item.Copy();/ Saveitem=new ButtonItem(“bSave“);item.ImageIndex=3;item.Text=“item.Shortcuts.Add(eShortcut.CtrlS);item.Category=“Standard“;