




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DotNetBar第三方控件使用笔记DotNetBar第三方控件使用笔记/NUMPAGES139DotNetBar第三方控件使用笔记DotNetBar第三方控件使用笔记DotNet第三方控件使用笔记ButtonX控件可实现如下效果:(1)在ButtonX上,是否显示图像,取决于“images”属性。(2)在“ButtomItem”控件中,是否“只是显示图像”,“只是文本”,还是“图像和文本都显示”,取决于。BalloonTip控件(气泡提示)在添加了BalloonTip控件后,其他各个控件会出现对应的“……上的BalloonText”和“……上的BalloonCaption”属性,通过修改这两个属性可设置鼠标移动到控件时弹出的气泡提示的标题和内容,也可通过代码设置这个两个属性,如:balloonTip1.SetBalloonCaption(txtUserName,"提示");
balloonTip1.SetBalloonText(txtUserName,"输入你的大名吧");
balloonTip1.SetBalloonCaption(txtUserPw,"提示;
balloonTip1.SetBalloonText(txtUserPw,"大名输完了就是你的密码咯");")使用效果效果一:在鼠标在控件上面停留时,出现提示信息,如下图:效果二:当控件获得焦点时,也出现如上图一样的信息。实现上述两种效果的途径将BalloonTip控件的“ShowBalloonOnFacus”属性设置为“False”即可实现效果一。设置BalloonTip显示的内容将“ShowBalloonOnFacus”属性设置为“True”,即可实现效果二。在欲设置该属性的控件的“BalloonTipOnFocus上的BalloonCaption”和“BalloonTipOnHover上的BalloonCaption”属性中,分别设置这两种效果的“标题”属性;在“BalloonTipOnFocus上的BalloonText”和在“BalloonTipOnHover上的BalloonText”属性中,分别设置这两种效果的“显示内容”的属性。属性“AlerAnimation”设置“BalloonTip”出现的效果“BalloonTip”除了出现在该控件附近,还可以出现在屏幕的右下角,示例程序如下:privateAlertCustomm_AlertOnLoad=null;m_AlertOnLoad=newAlertCustom();Rectangler=Screen.GetWorkingArea(this);m_AlertOnLoad.Location=newPoint(r.Right-m_AlertOnLoad.Width,r.Bottom-m_AlertOnLoad.Height);m_AlertOnLoad.AutoClose=true;m_AlertOnLoad.AutoCloseTimeOut=15;m_AlertOnLoad.AlertAnimation=eAlertAnimation.BottomToTop;m_AlertOnLoad.AlertAnimationDuration=300;m_AlertOnLoad.Show(false);//false指示该控件是否需要获得焦点才出现“BalloonTip”“BalloonTip”除了可以通过“添加控件”的方式使用,也可以通过编程的方式使用,示例程序如下:DevComponents.DotNetBar.Balloonb=newDevComponents.DotNetBar.Balloon();b.Style=eBallonStyle.Alert;asImage;b.CaptionText="BalloonStatusInFormation";b.Text="BalloonsarenowenabledforBalloonTipTestarea.Hovermouseovertheareaandsetthefocustoanycontrol.";b.AlertAnimation=eAlertAnimation.TopToBottom;b.AutoResize();b.AutoClose=true;b.AutoCloseTimeOut=4;b.Owner=this;//指示父控件b.Show(button2,false);//button2指示在那个控件附近出现“BalloonTip”还可以对“BalloonTip”出现时的效果进行程序控制,如下://BalloonTriggerControlpropertyreturnscontrolthatinvokedballoon//BalloonTriggerControl属性返回触发“BalloonTip”的控件if(balloonTipHover.BalloonTriggerControl==groupBox1){ //BalloonControlisalreadypreparedBallooncontrolthatisjustabouttobedisplayed //SettingBalloonControltonullwillcancelballoondisplay Pointp=Control.MousePosition; //Adjustcursorpositionsocursorisbelowtip,//Offset属性将点p进行平移 }与之类似的是DotNetToolTip所有控件都有的“ToolTip”属性,也可以是控件在鼠标划过时出现类似的东西,如下图:DotNetBarManager控件与Bar控件的使用示例效果如下图:DotNetBarManager控件 将该控件添加到工程后,将给Bar控件提供了“停靠点(DockSite)”,可以实现工具栏在窗体的“上、下、左、右”摆放。 可以通过程序实现,也可以通过“属性页”的“Dock”属性进行设置。 bar.DockSide=eDockSide.Top;DotNetBarManager控件,通过右键菜单可以轻松实现如下图所示的布局。通过拖动也可以轻易的实现如下视图的布局与上图相应的代码://CreatenewdocumentandaddittoexistingbarDevComponents.DotNetBar.DockContainerItemDockItem=newDevComponents.DotNetBar.DockContainerItem();DockItem.Text="CustomDocument";//AddcontroltoitTextBoxt=newTextBox();t.Autosize=false;t.Multiline=true;t.Text=DockItem.Text;//PanelDockContainerwillbeusedtohostanycontrols.Itprovidesautomaticfocusmanagementsofocused//documenttabappearsboldDevComponents.DotNetBar.PanelDockContainerpanel=newDevComponents.DotNetBar.PanelDockContainer();t.Dock=DockStyle.Fill;DockItem.Control=panel;DockItem);//添加第二个选项卡/****************************************************************************************************/DevComponents.DotNetBar.DockContainerItemDockItem1=newDevComponents.DotNetBar.DockContainerItem();DockItem1.Text="Thisisthesecond!";Labell=newLabel();l.Text=DockItem1.Text;DevComponents.DotNetBar.PanelDockContainerpanel1=newDevComponents.DotNetBar.PanelDockContainer();l.Dock=DockStyle.Fill;panel1.Controls.Add(l);DockItem1.Control=panel1;bar1.Items.Add(DockItem1);/****************************************************************************************************/if(!bar1.Visible)bar1.Visible=true;elsebar1.RecalcLayout();//OptimizedisplaybydisablinglayoutforallDocksitesdotNetBarManager1.SuspendLayout=true;try{foreach(DevComponents.DotNetBar.BarbarindotNetBarManager1.Bars){if(bar.DockSide==DevComponents.DotNetBar.eDockSide.Document){foreach(DevComponents.DotNetBar.DockContainerItemDockinbar.Items)Dock.Visible=true;}if(!bar.Visible)bar.Visible=true;}}finally{dotNetBarManager1.SuspendLayout=false;}代码实现的界面如下图:下面的代码通过编程的方式实现如下图所示的功能privatevoidForm1_Load(objectsender,System.EventArgse){dotNetBarManager1.DockTabChange+=newDotNetBarManager.DockTabChangeEventHandler(this.DockTabChanged);CreateBottomBarAutoHide();CreateLeftDockedBars();}privatevoidDockTabChanged(objectsender,DockTabChangeEventArgse){//使Bar的标题与当前停靠选项卡同步Barbar=senderasBar;if(bar==null||e.NewTab==null)return;}privatevoidCreateBottomBarAutoHide(){Barbar=newBar("BottomBarinauto-hidestate");bar.Name="bottomBar";bar.LayoutType=eLayoutType.DockContainer;//停靠容器布局需要可停靠窗口bar.Stretch=true;//可停靠窗口拉伸至填补容器bar.AutoHideAnimationTime=0;//一些控件不支持动画所以关掉它bar.GrabHandleStyle=eGrabHandleStyle.Caption;//可停靠窗口有标题//DotNetBar需要添加bar以便能管理它的停靠等//创建托管控件DockContainerItemDockItem=newDockContainerItem("bottomDockItem1","FirstDockitem");DockItem);//创建我们想放在可停靠窗口的控件UserControl1DockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.Azure;DockItem.Control=DockedControl;//指定该控件是托管在停靠容器上DockItem.Height=128;//指定可停靠容器的高度和同一时间控制//创建第二个停靠容器并添加到Bar中DockItem=newDockContainerItem("bottomDockItem2","SecondDockitem");DockItem);DockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.Aquamarine;DockItem.Control=DockedControl;//指定该控件是托管在停靠容器上//将Bar停靠到下面的停靠位置dotNetBarManager1.BottomDockSite.GetDocumentUIManager().Dock(bar);DockItem.Height=128;//指定可停靠容器的高度和同一时间控制bar.RecalcLayout();//适用所有的变化...bar.AutoHide=true;//将Bar置为自动隐藏模式。Bar需要停靠的地方,才能置为自动隐藏模式}privatevoidCreateLeftDockedBars(){//将前两个Bar并排停靠并将第三个Bar停靠在他们之后...Barbar=newBar("Bar1");bar.Name="leftBar1";bar.LayoutType=eLayoutType.DockContainer;//停靠容器布局需要可停靠窗口bar.Stretch=true;//可停靠窗口拉伸至填补容器bar.AutoHideAnimationTime=0;//一些控件不支持动画所以关掉它bar.GrabHandleStyle=eGrabHandleStyle.Caption;//可停靠窗口有标题bar.CanHide=true;//为Bar创建DockContainerItem,该项应该在Bar停靠前添加DockContainerItemDockItem=newDockContainerItem("leftDockItem1","TopLeftDockContainer");DockItem);//创建我们想放在可停靠窗口的控件UserControl1DockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.Khaki;DockItem.Control=DockedControl;//指定该控件是托管在停靠容器上//DotNetBar需要添加bar以便能管理它的停靠等dotNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar);//将Bar停靠到左边的可停靠位置DockItem.Width=128;//在停靠之后指定停靠容器项的宽度//创建第二个Bar并将它停靠低于第一个Bar但仍在同一行Barbar2=newBar("Bar2");bar2.Name="leftBar2";bar2.LayoutType=eLayoutType.DockContainer;//停靠容器布局需要可停靠窗口bar2.AutoHideAnimationTime=0;//一些控件不支持动画所以关掉它bar2.Stretch=true;//可停靠窗口拉伸至填补容器bar2.CanHide=true;bar2.GrabHandleStyle=eGrabHandleStyle.Caption;//可停靠窗口有标题//添加新的停靠容器到Bar上,应该在添加Bar之前执行以便大小可以计算正确DockItem=newDockContainerItem("leftDockItem2","BottomLeftDockContainer");DockItem);//创建我们想放在可停靠窗口的控件DockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.Lavender;DockItem.Control=DockedControl;//指定该控件是托管在停靠容器上//DotNetBar需要添加bar以便能管理它的停靠等dotNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar,bar2,eDockSide.Bottom);//停靠新bar2低于我们先前创建的Bar//创建第三个Bar,停靠在第一个和第二个之后//i.e.ontheline1bar=newBar("Bar3");bar.Name="leftBar3";bar.LayoutType=eLayoutType.DockContainer;//停靠容器布局需要可停靠窗口bar.AutoHideAnimationTime=0;//一些控件不支持动画所以关掉它bar.Stretch=true;//可停靠窗口拉伸至填补容器bar.CanHide=true;bar.GrabHandleStyle=eGrabHandleStyle.Caption;//可停靠窗口有标题DockItem=newDockContainerItem("leftDockItem3","LeftDockContainerline1");DockItem);//创建我们想放在可停靠窗口的控件DockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.LemonChiffon;DockItem.Control=DockedControl;//指定该控件是托管在停靠容器上//DotNetBar需要添加bar以便能管理它的停靠等dotNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar);//设置停靠点的宽度并将bars按比例停靠在里面//但是这个尺寸应该大到足以容纳所有的Bar包括约束像MinimumSize等等dotNetBarManager1.LeftDockSite.Width=150;}BaseItem::定义了DotNetBar使用的项的基类示例:BaseItemitem=senderasBaseItem;添加“菜单项“也可以通过两种方式实现“可视化“的方式在“设计器“里可以通过”右键“来实现;程序的方法privatevoidCreateBar(){ //创建Bar Barbar=newBar("Standard"); bar.CanHide=true; bar.Style=eDotNetBarStyle.Office2003; bar.GrabHandleStyle=eGrabHandleStyle.StripeFlat; bar.WrapItemsDock=true; bar.WrapItemsFloat=false; //向Bar内添加项 ButtonItemitem,fileItem; //添加新建菜单 item=newButtonItem("bNew"); item.ImageIndex=0; //item.Image=imageList1.Images[0];item.Text="&New"; eShortcut.CtrlN); item.Category="Standard"; //这将创建类别条目 //添加打开菜单 item=newButtonItem("bOpen"); item.ImageIndex=1; item.Text="&Open"; eShortcut.CtrlO); item.Category="Standard"; //添加子菜单项到打开菜单,例如最近使用的文件之类的东西 fileItem=newButtonItem("file1"); fileItem.Text="&1.File1.txt"; fileItem=newButtonItem("file2"); fileItem.Text="&2.File2.txt"; fileItem=newButtonItem("file3"); fileItem.Text="&3.File3.txt"; fileItem=newButtonItem("file4"); fileItem.Text="&4.File4.txt"; fileItem=newButtonItem("file5"); fileItem.Text="&5.File5.txt"; //添加关闭菜单 item=newButtonItem("bClose"); item.ImageIndex=2; item.Text="&Close"; eShortcut.CtrlX); item.Category="Standard"; //添加保存菜单 item=newButtonItem("bSave"); item.ImageIndex=3; item.Text="&Save"; eShortcut.CtrlS); item.Category="Standard"; //添加打印预览菜单 item=newButtonItem("bPrintPreview"); item.ImageIndex=6; item.Text="PrintPre&view"; item.Category="Standard"; item.BeginGroup=true; //添加打印菜单 item=newButtonItem("bPrint"); item.ImageIndex=5; item.Text="&Print"; item.Category="Standard"; eShortcut.CtrlP); //添加邮件菜单 item=newButtonItem("bEmail"); item.ImageIndex=4; item.Text="&Email"; item.Category="Standard"; item.BeginGroup=true; //添加“添加/删除“按钮 CustomizeItemcitem=newCustomizeItem(); //由于我们将使用ImageList,Bar酒吧必须被添加到DotNetBarManager中 //将Bar加入DotNetBarManager bar.DockSide=eDockSide.Top;}为所有选项添加“事件”.BarItemClick);privatevoidBarItemClick(objectsender,EventArgse){ BaseItemitem=senderasBaseItem; if(item==null||item.Name==""||item.SystemItem) return; MessageBox.Show("Item'"+item.Name+"'clicked");}设置窗体的大小AutoScaleBaseSize属性的值在窗体显示时使用,用来计算该窗体的缩放因子。窗体将自动缩放基大小(用作与系统的字体大小进行比较的基准),以确定使用自动缩放时窗体的缩放量。如果要确定根据特定字体窗体将自动缩放到的大小,请使用GetAutoScaleSize方法。示例: this.AutoScaleBaseSize=newSystem.Drawing.Size(11,17);该属性将按着Size(a,b)内a与b的比例大小自动调整窗口大小,但是值得注意的是:a与b的绝对值越大,窗口越小。//设置工作区域的大小this.ClientSize=newSystem.Drawing.Size(351,207);ImageList组件概述ImageList组件就是一个图像列表。一般情况下,这个属性用于存储一个图像集合,这些图像用作工具栏图标或TreeView控件上的图标。许多控件都包含ImageList属性。这个属性一般和ImageIndex属性一起使用。ImageList属性设置为ImageList组件的一个实例,ImageIndex属性设置为ImageList中应在控件中显示的图像的索引。使用ImageIndex.Images属性的Add方法可以把图像添加到ImageList组件中。Images属性返回一个ImageCollection。两个最常用的属性是ImageSize和ColorDepth。ImageSize使用Size结构作为其值。其默认值是16×16,但可以取1~256之间的任意值。ColorDepth使用ColorDepth枚举作为其值。颜色深度值可以从4位~32位。在.NETFramework1.1中,默认是ColorDepth.Depth8Bit。示例privateSystem.Windows.Forms.ImageListimageList1;
Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
//下面加几个Image
,"acrobat.ico");
,"addressbook.ico");
,"adjustcolour.ico");
//把imageList1赋给treeView1
this.treeView1.ImageList=this.imageList1;
,3);
,450);
//以上code在Designer完成
//在添加TreeNode的时候,把Image加上
//未选中时,这个node显示imageList1中的"acrobat.ico",选中后显示"addressbook.ico"
TreeNodenode=newTreeNode("TreeNodeName",0,1);
treeView1.ExpandAll();讨论ImageList里面的图片的颜色ImageList里面的图片的大小引起ImageList里面图片颜色失真的原因是在Design-Time就在VS.NET中往ImageList里面添加了Images。
当用户一边在“ImageCollectionEditor”对话框里面添加图片,VS.NET一边就已经把这些图片装载到resource文件里面了。这样,以后程序运行时就只需要访问resource文件就可以载入所有图片而不需要依赖原始的图片文件。
但是问题在于从结果看,当VS.NET在Design-Time往resource文件里面添加图片时并没有使用用户指定的ColorDepth(例如Depth32Bit),而用了ImageList.ColorDepth的默认值(Depth8Bit)。这样,等程序运行时,即使ImageList.ColorDepth指定了Depth32Bit也无济于事,因为原始的素材本身只有8bit的颜色。这基本上就是失真的问题的原因。
因此,解决方案是:不在Design-Time用VS.NET往ImageList里面添加图片,而是在程序运行时先指定32Bit的ColorDepth,然后再添加图片,如以下例子代码:
这里需要注意的是,必须先指定ColorDepth,然后再添加图片。因为对ColorDepth赋值会清空所有图片。BTW,ImageList.ColorDepth的默认值是Depth8Bit,而非文档上所述Depth4Bit。这一点很容易可以通过写一段例子代码来验证,也可以通过很多Decompiler来查看ImageList的构造函数的实现来验证。
ImageSize同ColorDepth类似,也不宜在运行时改动,一旦重新赋值,就会清空所有的图片。因此,如果程序运行时需要某一图片的不同大小的版本,可以考虑使用多个不同ImageSize的ImageList。关于ImageList组件的用法还存在问题控件BubbleBar的使用使用效果其实使用很简单,只有将BubbleBar控件拖到窗体上,然后,就可以添加“Tab”和“Button”了。一些有用的语句privatevoidbubbleButton_Click(objectsender,DevComponents.DotNetBar.ClickEventArgse){DevComponents.DotNetBar.BubbleButtonbutton=senderasDevComponents.DotNetBar.BubbleButton;textBox1.Text=button.Name+","+button.TooltipText;}privatevoidcheckBox2_CheckedChanged(objectsender,System.EventArgse){ if(checkBox2.Checked) bubbleBar1.ButtonBackgroundStretch=true; else bubbleBar1.ButtonBackgroundStretch=false; //ApplyUIchangesandrefresh//刷新 bubbleBar1.RecalcLayout();bubbleBar1.Refresh();}privatevoidnumericUpDown1_ValueChanged(objectsender,System.EventArgse){//图像分配给控件时总是匹配最佳外观的尺寸是最好的 bubbleBar1.ImageSizeNormal=newSize((int)numericUpDown1.Value,(int)numericUpDown1.Value); bubbleBar1.RecalcLayout(); bubbleBar1.Refresh();}控件DataGridViewX的使用说明控件DataGridView与DataGridView的基本用法类似。DataGridView有自动按列排序的功能。。dataGridViewX1.SelectedRows[0].Cells[0].Value.ToString()。DataGridView的示例代码#region设置DataGridView的显示格式dgvMachinceList.AutosizeColumnsMode=System.Windows.Forms.DataGridViewAutosizeColumnsMode.Fill;dgvMachinceList.AutoGenerateColumns=false;dgvMachinceList.AllowUserToAddRows=false;dgvMachinceList.AllowUserToResizeColumns=true;//////////////////////////////////////////////////////TabControlPaneltcp;foreach(ControlcintabControl1.Controls) if(cisTabControlPanel) { tcp=(TabControlPanel)c; Color.FromArgb(227,239,255); Color.FromArgb(175,210,255); foreach(Controlctrlintcp.Controls) { if(ctrlisDevComponents.DotNetBar.Controls.DataGridViewX) { DataGridViewXDataGridViewX)ctrl; dgv.AutoGenerateColumns=false; dgv.BackgroundColor=Color.FromArgb(227,239,255); dgv.AllowUserToAddRows=false; dgv.AllowUserToDeleteRows=false; //dgv.Autosize=false; dgv.AutosizeColumnsMode=System.Windows.Forms.DataGridViewAutosizeColumnsMode.Fill; dgv.AutosizeRowsMode=System.Windows.Forms.DataGridViewAutosizeRowsMode.AllCells; dgv.AllowUserToResizeColumns=true; //dgv.RowHeadersWidth=900; dgv.MultiSelect=false; dgv.ReadOnly=true; dgv.RowHeadersVisible=false; dgv.ScrollBars=System.Windows.Forms.ScrollBars.Both; dgv.SelectionMode=System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; } } } "HID","硬件ID号");—————————————————图片示例—————————————————— "HType","硬件类型"); "HDetails","硬件信息"); "MID","所属机器ID号"); "IP","所属机器的IP地址"); foreach(DataGridViewColumncolindgvHardwareList.Columns) col.DataPropertyName=col.Name;—————————————————图片示例——————————————————"MID","机器ID"); "MName","机器名"); "UID","用户ID"); dgvMachinceList.Columns["UID"].Visible=false; "UName","用户名"); "IP","IP地址"); "DeptID","DeptID"); dgvMachinceList.Columns["DeptID"].Visible=false; "Department","所属部门"); foreach(DataGridViewColumncolindgvMachinceList.Columns) col.DataPropertyName=col.Name;dgvFileOpLog.DataSource=fileoplogbll.ListByMachine(m.MID,tbLFileOpLogNum.Value);//怎样获得鼠标右击处的行 DataGridView.HitTestInfohittestinfo=dgvMachinceList.HitTest(e.X,e.Y); dgvMachinceList.Rows[hittestinfo.RowIndex].Selected=true;控件ColorPicker的使用使用效果:单击相应的按钮,工作区(整体)的颜色发生变化。随着鼠标在各种颜色上的移动,工作区(整体)的颜色随着变化。还可以选择“MoreColors”进一步改变工作区的颜色。下面是相应的代码privateboolm_ColorSelected=false;privateeOffice2007ColorSchemem_BaseColorScheme=eOffice2007ColorScheme.Blue;//预览,随着鼠标在各种颜色上的移动,工作区(整体)的颜色随着变privatevoidcolorPickerDropDown1_ColorPreview(objectsender,ColorPreviewEventArgse){ RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme,e.Color);}//在colorPickerDropDown1上选择颜色后,工作区(整体)的颜色随着变privatevoidcolorPickerDropDown1_ExpandChange(objectsender,EventArgse)//扩展区域弹出后,所激发的事件{if(colorPickerDropDown1.Expanded){//刚弹出,则初始化一个颜色值//Rememberthestartingcolorschemetoapplyifnocolorisselectedduringlive-previewm_ColorSelected=false;m_BaseColorScheme=((Office2007Renderer)GlobalManager.Renderer).ColorTable.InitialColorScheme;}else//否则,是“隐去”{if(!m_ColorSelected){RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme);}}}//选择颜色后,发生的事件privatevoidcolorPickerDropDown1_SelectedColorChanged(objectsender,EventArgse){m_ColorSelected=true;//IndicatethatcolorwasselectedforbuttonStyleCustom_ExpandChangemethodRibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme,colorPickerDropDown1.SelectedColor);}说明初始化一个颜色值m_BaseColorScheme=((Office2007Renderer)GlobalManager.Renderer).ColorTable.InitialColorScheme;改变颜色值RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme,colorPickerDropDown1.SelectedColor);应用颜色值RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme);工作区的控件的颜色有可能不同时变化原因:是各个控件的“Style”和“ColorSchemeStyle”采用的风格不统一解决办法:都采用一种风格,如“Office2007”即可eOffice2007ColorScheme.Silver控件SideBar的使用功能可实现如下图似的的分组:实现方式右键——>“AddPanel”,进行“分组”。对每一个组进行设置。右键,对每一个组,添加控件。该控件的颜色策略——DevComponents.DotNetBar.eSideBarColorSchemescheme=(DevComponents.DotNetBar.eSideBarColorScheme)Enum.Parse(typeof(DevComponents.DotNetBar.eSideBarColorScheme),sSel,false);sideBar1.PredefinedColorScheme=scheme;privatevoidsideBar1_ItemClick(objectsender,System.EventArgse){item=richTextBox1.Text="ItemClick:"+item.Text+"("+item.Name+")\n"+richTextBox1.Text;}Enum枚举类Enum.GetUnderlyingType方法--返回指定枚举的基础类型。-publicstaticTypeGetUnderlyingType(TypeenumType)参数:enumType类型:System.Type枚举类型。返回值:类型:System.TypeenumType的基础Type。--示例staticobjectGetAsUnderlyingType(Enumenval){Typeentype=enval.GetType();Typeundertype=Enum.GetUnderlyingType(entype);returnConvert.ChangeType(enval,undertype);}Enum.GetName方法--在指定枚举中检索具有指定值的常数的名称。-publicstaticstringGetName(TypeenumType,Objectvalue) 参数:enumType类型:System.Type
枚举类型。value类型:System.Object
特定枚举常数的值(根据其基础类型)。返回值:类型:System.String一个字符串,该字符串包含enumType的枚举常数的名称,该常数的值为value;或者,如果没有找到这样的常数,则为nullNothingnullptrnull引用(在VisualBasic中为Nothing)。--示例usingSystem;publicclassGetNameTest{enumColors{Red,Green,Blue,Yellow};enumStyles{Plaid,Striped,Tartan,Corduroy};publicstaticvoidMain(){Console.WriteLine("The4thvalueoftheColorsEnumis{0}",Enum.GetName(typeof(Colors),3));Console.WriteLine("The4thvalueoftheStylesEnumis{0}",Enum.GetName(typeof(Styles),3));}}Enum.GetNames方法 --检索指定枚举中常数名称的数组。--publicstaticstring[]GetNames(TypeenumType)参数:enumType类型:System..::.Type
枚举类型。返回值:类型:array<System.String>[]()[]
enumType的常数名称的字符串数组。--示例usingSystem;publicclassGetNamesTest{enumColors{Red,Green,Blue,Yellow};enumStyles{Plaid,Striped,Tartan,Corduroy};publicstaticvoidMain(){ Console.WriteLine("ThevaluesoftheColorsEnumare:"); foreach(stringsinEnum.GetNames(typeof(Colors))) Console.WriteLine(s);Console.WriteLine();Console.WriteLine("ThevaluesoftheStylesEnumare:");foreach(stringsinEnum.GetNames(typeof(Styles)))Console.WriteLine(s);}}Enum.GetValues方法--检索指定枚举中常数值的数组。--publicstaticArrayGetValues(TypeenumType)参数:enumType类型:System.Type
枚举类型。返回值:类型:System.Array
enumType的常数值的Array。该数组的元素按枚举常数的二进制值排序。--示例usingSystem;publicclassGetValuesTest{enumColors{Red,Green,Blue,Yellow}; enumStyles{Plaid=0,Striped=23,Tartan=65,Corduroy=78};publicstaticvoidMain(){ Console.WriteLine("ThevaluesoftheColorsEnumare:");foreach(intiinEnum.GetValues(typeof(Colors))) Console.WriteLine(i); Console.WriteLine(); Console.WriteLine("ThevaluesoftheStylesEnumare:"); foreach(intiinEnum.GetValues(typeof(Styles))) Console.WriteLine(i);}}//Theexampleproducesthefollowingoutput://ThevaluesoftheColorsEnumare://0//1//2//3////ThevaluesoftheStylesEnumare://0//23//65//78Enum..::.Parse方法--将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。
名称说明Parse(Type,String)将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。String包含要转换的值或名称的字符串。备注:value参数中包含一个值、一个已命名常数或由逗号(,)分隔的已命名常数列表。在value中的每个值、名称或逗号的前面或后面都可以有一个或多个空格。如果value是一个列表,则返回值是各指定名称通过按位“或”运算结合而成的值。示例:[FlagsAttribute]enumColors{Red=1,Green=2,Blue=4,Yellow=8};Console.WriteLine("TheentriesoftheColorsEnumare:");foreach(stringcolorNameinEnum.GetNames(typeof(Colors))){Console.WriteLine("{0}={1}",colorName,Convert.ToInt32(Enum.Parse(typeof(Colors),colorName)));}Console.WriteLine();ColorsmyOrange=(Colors)Enum.Parse(typeof(Colors),"Red,Yellow");Console.WriteLine("ThemyOrangevalue{1}hasthecombinedentriesof{0}",myOrange,Convert.ToInt64(myOrange));Parse(Type,String,Boolean)将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。一个参数指定该操作是否区分大小写。Boolean参数指定该操作是否区分大小写示例:Enum.GetNames(typeof(DevComponents.DotNetBar.eSideBarColorScheme))(DevComponents.DotNetBar.eSideBarColorScheme)Enum.Parse(typeof(DevComponents.DotNetBar.eSideBarColorScheme),sSel,false)MoneyStyle示例代码1//Filemenu=newButtonItem("mFile","&File");//NewmenuItem=newButtonItem("mNew","New");//OpenmenuItem=newButtonItem("mOpen","&Open");eShortcut.CtrlO);//PasswordmanagermenuItem=newButtonItem("mPasswordManager","PasswordManager");menuItem.BeginGroup=true;//在该按钮前加一条线//BackupmenuItem=newButtonItem("mBackup","&BackUp...");menuItem.BeginGroup=true;//在该按钮前加一条线//RestoremenuItem=newButtonItem("mRestore","&Restore...");//ArchivemenuItem=newButtonItem("mArchive","&Archive...");//ExitmenuItem=newButtonItem("mExit","E&xit");menuItem.BeginGroup=true;//将新建的Bar添加到dotNetBarManager1//然后,设置摆放位置bar.DockSide=eDockSide.Top;示例代码2//标准工具栏StandardToolbarbar=newBar("Standard");//当被添加到DotNetBarManager.Bars集合里时,风格匹配将被设置在Bar里的其他风格是重要的bar.Style=dotNetBarManager1.Style;bar.Name="barStandard";bar.Stretch=true;bar.EqualButtonSize=true;bar.DisplayMoreItemsOnMenu=true;bar.BackgroundImage=newBitmap(this.GetType(),"background.png");bar.BackgroundImagePosition=eBackgroundImagePosition.Tile;//平铺覆盖SetToolbarColorScheme(bar.ColorScheme);//必须添加bar到bars集合里,以便DotNetBarManager能知道它//设置最初停靠线bar.DockLine=1;//当DotNetBarManager知道它后,我们可以将它停靠在适当的一边bar.DockSide=eDockSide.Top;//AccountList"bAccountList","AccountList","AccountList.png","AccountListHot.png"));//Portofolio"bPortofolio","Portofolio","Portofolio.png","PortofolioHot.png"));//BillsandDeposits"bBills","Bills&&Deposits","BillsAndDeposits.png","BillsAndDepositsHot.png"));//Reports"bReports","Reports","Reports.png","ReportsHot.png"));//CashFlow"bCashFlow","CashFlow","CashFlow.png","CashFlowHot.png"));//Budget"bBudget","Budget","Budget.png","BudgetHot.png"));privatevoidSetToolbarColorScheme(ColorSchemescheme){ //设置工具栏自定义配色方案…… 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;}privateButtonItemCreateToolbarButton(stringname,stringtext,stringimageName,stringhotImageName){ ButtonItembutton=newButtonItem(name,text); button.Image=newBitmap(this.GetType(),imageName); button.HoverImage=newBitmap(this.GetType(),hotImageName); button.PressedImage=button.HoverImage; button.HotTrackingStyle=eHotTrackingStyle.None; button.ButtonStyle=eButtonStyle.ImageAndText; button.ImagePosition=eImagePosition.Top; button.Cursor=Cursors.Hand; returnbutton;}控件PanelEx的使用(1)下图中的六部分都是PanelEx。(2)PanelEx有如上图的几种风格。(3)PanelEx在“Text”属性里,可以使用Html语言,可以加入超链接,只是只能链接到某个函数名,注意的是:必须将该函数,在“属性”—“事件”选项卡中的“MarkupLinkClick”事件中,进行关联。界面:弹出式菜单设置该图左边图的代码如下://确定:在side-bar中使用的图都是可用的,//另外,确定,图的大小要一定小于Side-Bar的高度DevComponents.DotNetBar.SideBarImagesi=newDevComponents.DotNetBar.SideBarImage();si.Picture=newBitmap(typeof(Popup.Form1),"devco.jpg");//Ifimageexceedsthesizeofthepopupmenuthisspecifiestheimagealignmentsi.Alignment=DevComponents.DotNetBar.eAlignment.Bottom;//Ifthereisnoimagespecifiedgradientcanbeusedsi.GradientColor1=Color.Orange;si.GradientColor2=Color.Black;m_PopupFromCode.PopUpSideBar=si;弹出式工具栏--1和2创建按钮(菜单选项)时,所用的函数一样,所用的风格一样,只是在最后弹出菜单时,使用的函数不一样,才导致的外观不一样。--这是Menu的风格设置。//设置风格style=Office2003;if(((DevComponents.Editors.ComboItem)cboStyle.SelectedItem).Text!="Office2003") style=DevComponents.DotNetBar.eDotNetBarStyle.VS2005;m_PopupFromCode.Style=style; //如果弹出式菜单不属于ContextMenu(即没有在属性“contextMenuBar1上的ContextMenuEx”上进行相关设置)的话,该弹出式菜单必须在DotNetBar上进行注册dotNetBarManager1.RegisterPopup(m_PopupFromCode);//把菜单放在按钮下面Controlctrl=senderasControl;Pointp=this.PointToScreen(newPoint(ctrl.Left,ctrl.Bottom));//下面这两句才是弹出菜单显示效果不一样的原因m_PopupFromCode.PopupMenu(p);m_PopupFromCode.PopupBar(p);--下面是Bar的风格设置右键菜单要想加入右键菜单,需要:加入控件“ContextMenuBar”。在“ContextMenuBar”上加入所需的右键菜单。示例:在“ContextMenuBar”上,右键,选择“AddContextMenu”,出现“ButtomItem1”,设置其“Name”属性,然后在该ButtomItem1上,单击右键,添加一系列button,这才是具体的右键菜单。在要加入右键菜单的控件上,设置属性“contextMenuBar1上的ContextMenuEx”,使该属性值与“右键菜单”ButtomItem1相关联即可。ContextMenuEx弹出菜单时,激活的事件是PopupOpen,可以对弹出的菜单进行相应的设置。控件ItemPanel和控件ItemContainer的使用示例的使用效果控件ItemPanel和控件ItemContainer都是用来放其他控件的容器,只是ItemPanel只能纵向放置,而ItemContainer都可以。--示例privatevoiditemPanel2_ItemClick(objectsender,System.EventArgse){ if(senderisButtonItem) {//因为图表选择器在不同的容器里,ButtonItem.OptionGroup的设置将不会取消选择//按钮来自另一个容器,所以我们必须做 ButtonItembutton=GetCheckedButton(itemPanel2.Items,senderasButtonItem); if(button!=null) button.Checked=false; }} privateButtonItemGetCheckedButton(SubItemsCollectionparentCollection,ButtonItemexclude){ foreach(BaseItemiteminparentCollection) {if(itemisButtonItem&&item!=exclude&&((ButtonItem)item).Checked) returnitemasButtonItem; elseif(item.IsContainer) { ButtonItembutton=GetCheckedButton(item.SubItems,exclude); if(button!=null) returnbutton;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 休闲娱乐场所拆旧协议
- 交通建设项目可行性研究报告编制办法
- 农业行业农产品溯源与农技服务系统方案
- 物联网智能家居系统
- 咖啡厅品牌传播与推广预案
- 太阳能光伏地面电站
- 传媒行业融媒体运营与内容创新方案
- 育婴师复习测试附答案
- 车联网技术在智能交通中的应用与实践
- 中级养老护理复习测试卷含答案(一)
- 不定式作表语之哪吒趣味课件-高中英语
- 《不间断电源工作原理》课件
- 2025新高考数学核心母题400道(教师版)
- LY/T 3402-2024区域沙化土地分级规范
- 2024年苏州高博软件技术职业学院高职单招语文历年参考题库含答案解析
- 2024年江苏护理职业学院高职单招语文历年参考题库含答案解析
- 2025年春新冀教版英语三年级下册课件 2L3
- 二零二五年度电力储能项目合同书3篇
- 城市公园绿化养护协议
- 2024年租赁助听器合同范本
- 小学生雪豹课件
评论
0/150
提交评论