DotNet第三方控件使用笔记
第三方控件使用大全
第三方控件使用大全第三方控件使用大全一、ComboBoxEdit 1、如何使其不可编辑TextEditStyle 设置为:DisableTextEditor 2、如何设置鼠标为手形Cursor 设置为:Hand 二、GridControl 1、如何解决单击记录整行选中的问题View->OptionsBehavior->EditorShowMode 设置为:Click 2、如何新增一条记录(1)、gridView.AddNewRow() (2)、实现gridView_InitNewRow事件3、如何解决GridControl 记录能获取而没有显示出来的问题gridView.populateColumns(); 4、如何让行只能选择而不能编辑(或编辑某一单元格)(1)、View->OptionsBehavior->EditorShowMode 设置为:Click (2)、View->OptionsBehavior->Editable 设置为:false 5、如何禁用GridControl中单击列弹出右键菜单设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false 6、如何隐藏GridControl的GroupPanel表头设置Run Design->OptionsView->ShowGroupPanel 设置为:false 7、如何禁用GridControl中列头的过滤器过滤器如下图所示:设置RunDesign->OptionsCustomization->AllowFilter 设置为:false 8、如何在查询得到0条记录时显示自定义的字符提示/显示如图所示:方法如下://When no Records Are Being Displayed private voidgridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e) { //方法一(此方法为GridView设置了数据源绑定时,可用)ColumnView columnView = sender as ColumnView; BindingSource bindingSource = this.gridView1.DataSource as BindingSource; if(bindingSource.Count == 0) { string str = "没有查询到你所想要的数据!"; Font f = new Font("宋体", 10, FontStyle.Bold); Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5, e.Bounds.Right - 5, e.Bounds.Height - 5);e.Graphics.DrawString(str, f, Brushes.Black, r); } //方法二(此方法为GridView没有设置数据源绑定时,使用,一般使用此种方法)if (this._flag){ if (this.gridView1.RowCount == 0){ string str = "没有查询到你所想要的数据!"; Font f = new Font("宋体", 10, FontStyle.Bold); Rectangle r =new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5,e.Bounds.Width - 5, e.Bounds.Height - 5);e.Graphics.DrawString(str, f, Brushes.Black,r); } } } 9、如何显示水平滚动条?设置this.gridView.OptionsView.ColumnAutoWidth = false; 10、如何定位到第一条数据/记录?设置this.gridView.MoveFirst() 11、如何定位到下一条数据/记录?设置this.gridView.MoveNext() 12、如何定位到最后一条数据/记录?设置this.gridView.MoveLast() 13、设置成一次选择一行,并且不能被编辑this.gridView1.FocusRectStyle =DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFoc us; this.gridView1.OptionsBehavior.Editable = false;this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false; 14、如何显示行号?this.gridView1.IndicatorWidth = 40; //显示行的序号private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e){ if (.IsRowIndicator &&e.RowHandle>=0){ .DisplayText = (e.RowHandle + 1).ToString(); } } 15、如何让各列头禁止移动?设置gridView1.OptionsCustomization.AllowColumnMoving = false;16、如何让各列头禁止排序?设置gridView1.OptionsCustomization.AllowSort = false; 17、如何禁止各列头改变列宽?设置gridView1.OptionsCustomization.AllowColumnResizing = false;三、navBarControl 1、如何在每一个navBarGroup里添加自己想要的控件设置GroupStyle: ControlContainer 2、如何设置navBarGroup有滚动条设置SkinExplorerBarViewScrollStyle:ScrollBar 3、如休把navBarGroup设置成如下样式如图所示:设置navBarGroup的PaintStyleName属性为: SkinNavigationPane 四、toolTipController 效果图如下:1、如何设置显示的时间长短设置this.toolTipController1.AutoPopDelay = 2000; 2、如何在屏幕上显示如上图所示的效果ToolTipControllerShowEventArgs args =this.toolTipController1.CreateShowArgs();this.toolTipController1.SetToolTip(this.sbtnYes, "请选择一条记录!");this.toolTipController1.SetTitle(this.sbtnYes, "提示");this.toolTipController1.SetToolTipIconType(this.sbtnYes, DevExpress.Utils.ToolTipIconType.Exclamation);this.toolTipController1.ShowBeak = true;this.toolTipController1.ShowShadow = true;this.toolTipController1.Rounded = true;this.toolTipController1.ShowHint("请选择一条记录!", "提示"); args.ToolTip = "请选择一条记录!"; args.Title = "提示"; 3、如何设置边框的颜色this.toolTipController1.Appearance.BorderColor = Color.Red; 五、TextEdit 1、如何设置TextEdit为多行,可拉伸设置TextEdit的Propertity->AutoHeight为:False 六、LayoutControl 1、如何设置LayoutItem为隐藏设置LayoutItem.Visibility = Never 七、TreeList 1、如何隐藏TreeList的列头设置TreeListr的OptionsView 的ShowColumns属性为:False 2、如何八、PictureEdit 1、如何禁止PictureEdit的右键菜单?设置PictureEdit的Properties->ShowMenu为:false 九、TreeList 1、如何让TreeList的每个结点高亮显示?效果如下:代码如下:private voidtreeList1_CustomDrawNodeCell(object sender, DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs e) { TreeList node = sender as TreeList;if (e.Node == node.FocusedNode){ e.Graphics.FillRectangle(SystemBrushes. Window, e.Bounds); Rectangle r = new Rectangle(e.EditViewInfo.ContentRect.Left,e.EditViewInfo.ContentRect.Top,Convert.ToInt32(e.Graphics.MeasureString(e.CellText, treeList1.Font).Width + 1),Convert.ToInt32(e.Graphics.MeasureString(e.CellText,treeList1. Font).Height));e.Graphics.FillRectangle(SystemBrushes.Highlight, r);e.Graphics.DrawString(e.CellText, treeList1.Font, SystemBrushes.HighlightText, r);e.Handled = true; } }//============================================= ===============================//===============================以下内容为收集===============================//============================================= =============================== 一、改变grid的样式。
第三方控件的安装与卸载
BCB6开发经验谈—第三方控件的安装与卸载写下此文章是为了那些还还没有接触过第三方控件的,而又为第三方控件的安装与卸载而烦恼的开发人员。
就我所了解与使用过的有Raize、DevExpress、SuiPack、DBGridEh、FastReport等。
而如何正确的安装与卸载呢?并不像windows的安装程序与卸载那么傻瓜化。
如果是傻瓜化的安装与卸载,那就没必要写下这遍文章指导初学者。
以前刚接触第三方控件时,也曾为安装某一控件使用,又过一段时间将其卸载后,重新新建一个工程就编译不过了而感到烦恼。
第三方控件的安装相对简单一点,像Raize控件,就一个RC.exe文件就可以安装。
DevExpress相对麻烦一点,现在都有一个Auto-Installor自动安装。
在这里主要讲的是卸载第三方控件。
第三方控件的卸载,在BCB6中要经过三个步骤:(1)Remove Packages. 移除相应的软件包。
[1] 打开BCB6,然后File->Close All。
[2] Component->Install Packages…,然后选择要移除的软件包,点击Remove按钮。
(2)Remove Include Path/Lib Path/Palette Pages 移除Include/Lib/Pages信息。
[1] Project->Option->Directories/Conditionals->Include Path,去除要移除第三方控件的Include 路径。
[2] Project->Option->Directories/Conditionals->Lib Path,去除要移除第三方控件的Lib路径。
[3] Tools->Environment Options->Library,去除要移除第三方控件的Lib路径。
[4] Tools->Environment Options->Pallette->Pages,去除第三方控件的所有Page。
数据控件DataGridView添加、删除和修改数据库中的内容
数据控件DataGridView添加、删除和修改数据库中的内容作者:天涯来源:中国自学编程网发布日期:1214063638介绍一个数据控件DataGridView,它是 3.5中新增加的的重要控件。
它是一种网格形式的控件,能以表格的形式显示数据,它的优势是能多行显示数据,在数据库的操作中会经常用到。
(1)打开VS2008,在D:\C#\ch14目录下建立名为DataGridViewTest的Windows应用程序,打开工程,为当前窗体添加控件,如表14-2所示。
表14-2 添加控件列表控件名NameTextDataGridViewdataGridView1ButtonbtnRef更新设置ButtonbtnDelete删除(2)接下来需要设置DadaAdapter和DataSet,方法同上一节一样。
选中DataGridView的DataSource属性。
(3)单击“下一步”按钮,选择“数据连接”图标。
(4)最后一步需要选择数据库对象,本例是要操作StudentInf数据库中的表,所以选择“表”复选框。
(5)设置完毕后,整个程序界面就设置完了。
程序界面设计完毕后,接下来要做的工作就是通过修改dataGridView1中的数据来更新数据库中的内容。
它实现的原理很简单,通过studentInfDataSet把dataGridView1绑定到Class1表,studentInfDataSet处于中间位置,所以在dataGridView1中修改的数据必须要传递到studentInfDataSet后才能改变数据库中的内容。
(1)双击“更新设置”按钮,添加如下代码。
this.sqlDataAdapter1.Update(this.studentInfDataSet);该代码的功能是调用sqlDataAdapter1的Update()方法实现对studentInfDataSet的更新。
(2)按F5键,程序运行以后,对dataGridView1添加一行新的数据,然后单击“更新设置”按钮,完成后关闭程序再打开。
二维码生成(中、日、英)(DotNetBarcode第三方控件)
给需要转 换的字符 5 串赋值 BarcodeN umber = "はいは いはいは いはい" BarcodeN umber = "的辐的 辐动的辐 动的辐动 动" BarcodeN umber = "1234556 6"
二、下面 是完整实 例代码
'声明二 维码的实 例变量
Dim bc1 As DotNetBa rcode = New DotNetBa rcode(Do tNetBarc ode.Type s.QRCode )
'声明需 要转换成 二维码的 字符串
Dim BarcodeN umber As String
二维码生 成(中、 日、英) (DotNet Barcode 第三方控 件)调查 如下 一、需设 置以下参 数(下面 的大写红 色参数可 写入配置 文件中)
声明二维 码的实例 1 变量 Dim bc1 As DotNetBa rcode = New DotNetBa rcode(Do tNetBarc ode.Type s.QRCode )
'声明并 赋值生成 的二维码 存放的路 径
Dim myFileNa me As String = "D:\Docu ments and Settings \twqian\ 桌面 \11111.b mp"
'声明并 赋值生成 的二维码 保存的图 片的边长
Dim myFileLe ngth As Integer = "12"
'给需要 转换的字 符串赋值
第25章DotNET常用控件操作3
相关代码如下
第16页
Menu
<asp:menu id="NavigationMenu" disappearafter="2000" staticdisplaylevels="2" staticsubmenuindent="10" orientation="Horizontal" font-names="Arial" target="_blank" runat="server"> <staticmenuitemstyle backcolor="#DDDDDD" forecolor="red"/> <statichoverstyle backcolor="#DDDDDD"/> <dynamicmenuitemstyle backcolor="#EEEEEE" forecolor="red"/> <dynamichoverstyle backcolor="#DDDDDD" forecolor="Black"/> <items> <asp:menuitem navigateurl="/" text="首页" tooltip="首页"> <asp:menuitem navigateurl="/ShowList.aspx?id=1" text=" 栏目" tooltip=" 栏目"> <asp:menuitem navigateurl="Classical.aspx" text=" 最新文章" tooltip=" 最新文章"/> <asp:menuitem navigateurl="Rock.aspx" text=" 问与答" tooltip=" 问与答">
控件的使用实验报告
一、实验目的1. 熟悉常见控件的功能和使用方法。
2. 学习控件在应用程序中的布局和事件处理。
3. 提高编程实践能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C#三、实验内容本次实验主要使用Windows窗体应用程序进行控件的使用,具体内容包括:1. 控件的创建和添加2. 控件的属性设置3. 控件的布局4. 控件的事件处理四、实验步骤1. 创建Windows窗体应用程序(1)打开Visual Studio 2019,选择“创建新项目”。
(2)在“创建新项目”对话框中,选择“Windows窗体应用程序”,命名为“控件实验”。
(3)点击“创建”按钮,完成应用程序的创建。
2. 添加控件(1)在工具箱中找到所需控件,例如:文本框(TextBox)、按钮(Button)、标签(Label)等。
(2)将控件拖拽到窗体上,即可添加控件。
3. 设置控件属性(1)选中控件,在属性窗口中查看和修改控件的属性。
(2)例如,设置文本框的Text属性为“请输入内容”,设置按钮的Text属性为“提交”。
4. 控件布局(1)使用布局工具对控件进行布局,例如:使用水平布局、垂直布局、网格布局等。
(2)调整控件的大小和位置,使界面美观。
5. 控件事件处理(1)双击控件,打开代码编辑器。
(2)在事件处理函数中编写代码,实现所需功能。
(3)例如,在按钮的点击事件中,获取文本框的值并显示在标签中。
五、实验结果与分析1. 创建了包含文本框、按钮、标签的Windows窗体应用程序。
2. 添加并设置了控件的属性。
3. 对控件进行了布局,使界面美观。
4. 编写了按钮点击事件处理函数,实现了获取文本框值并显示在标签中的功能。
六、实验总结通过本次实验,我掌握了以下内容:1. 常见控件的功能和使用方法。
2. 控件在应用程序中的布局和事件处理。
3. 提高了编程实践能力。
在实验过程中,我发现以下问题:1. 对部分控件属性设置不够熟悉,需要加强学习。
Dotnetbar的使用方法
DOTNETBAR的使用方法我这里讨论的版本是DotNetBar 6.7.0.1 for VS2005的破解版本,其他版本我一个是没有时间找到,另外也是因为大同小异下载地址,见这里,如果还有哪个朋友下载不了,就加我QQ吧,如果你能提供一个群,我会写在这里,然后利用群空间来整理控件,方便你我下载地址是/soft/show.asp?id=2879&showasp=1&details.html在VS2005中的添加方法与IRISSKIN2类似,不过我这里再说一次:先把控件拷到你的程序BIN/Debug下,再到程序里,先引用,然后再工具栏新个一个选项,然后右键选择“选择项”菜单,在这个对话框里点浏览,里把这个DLL重新添加进来,这样,就可以把控件加到先项框里,接下来就是把控件拖到界面上,在代码里加上上面的说明的代码,就可以使用了。
有好几十个空间,可以把你的程序装扮成office2007。
很COOL!这里转几篇使用的日志:1----------------------------------------------------- DotNetBar的SuperTooltip控件使用技巧DotNetBar是一个顶尖的.net第三方表示层空间。
作出来的窗口可以说是非常非常非常的cool!SuperTooltip控件主要可以用于实现提示框。
在它提供的sample 中,实现了树视图中,鼠标移动到树节点上时显示的提示框。
我的一个项目中用到了树视图,在项目完成以后我决定把它用DotNetBar美化一下。
在参考着sample的代码对我的代码进行修改和调试的过程中,我发现sample 的代码并不是拿来用就行了的,还是需要理解以后进行修改。
按照sample的代码,假设我们的Form Form1中有控件TreeView treeView1,那么为treeView1实现提示框的方法如下:(我没用窗口编辑器,只修改代码来着)1在项目的引用中添加DevComponents.DotNetBar。
asp.net常用的第三方控件-shuanghusun的专栏-CSDN博客
常用的第三方控件-shuanghusun的专栏-CSDN博
客
分页控件,文本编辑器,皮肤控件
DYLIKEBUTTON:超稳定按钮皮肤控件
DYD.DLL :一句代码实现透明PNG窗体
WORKINGMASK :动态透明忙碌遮罩控件
MPB.DLL :超酷动态仿MAC进度条控件
一般来说,我们就用"FCKeditor"这个就可以了。
里面的界面可以通过一个js来控制,你可以找一下那个js文件,名字好像叫fckconfig.js。
用法很简单,就跟一个文本框一样。
推荐FreeTextBox,在工具箱添加控件FreeTextBox.dll即可,然后像使用普通控件一样,拖放.
一般用freetextbox和DotNetT extBox,还有FCKeditor 也常用,
推荐你用Dotnettextbox,我用过那个,感觉功能挺好的,配置也容易,因为这是一个成熟的商业软件,有很详细的帮助文档教你怎么用,而且还有免费版本
本文来自CSDN博客,转载请标明出处:/shuanghusun/archive/2010/07/17/5742692 .aspx。
c#控件dotnetbar的用法
DotNetBar介绍DotNetBar是一款带有51个Windows Form 控件的工具箱,使开发人员可以轻而易举地创建出专业美观的Windows Form应用程序用户界面,控件全部采用C#编写,引入了全部Office 2007 style Ribbon控件、Office 2003 样式、支持Windows XP主题等。
DotNetBar for WindowsForms 8.8 全面支持Office 2010 风格的后台应用程序菜单。
具体功能:●为Office 2007 Ribbon 控件提供了Black,Silver ,Blue三种配色方案,支持Windows VistaGlass、tab groups, ribbon hyper menus, multi-level KeyTips, complete Quick Access Toolbar (QAT),支持Ribbon Menu Tabs●Office 2007 Ribbon Bar 控件具有组合按钮,弹出按钮等●Office 2007 Super Tooltips控件具有18种颜色样式●支持停靠窗口自动隐藏,灵活的视图分割●支持具有Office 2007, 2005, Office 2003/XP/2000,样式的Hyper-Menus 和工具条●支持具有Office 2007和2003样式的导航面板,支持扩展和收缩●Tab Container控件具有9种不同的样式,16种配色方案,支持颜色自定制●Explorer Bar控件使程序员可以创建出具有XP样式的Explorer Bar●Tab-Strip控件具有九种预定义的样式,支持tabbed MDI ,颜色自定义●Side Bar 控件具有两种布局类型、5种不同的样式、18种预定义颜色方案,支持拖拉功能●BubbleBar 是一个灵活的toolbar控件●Stand alone Bar可以用于创建具有Office 2007 的状态条●可扩展的Splitter控件●可展开的Panel控件,●多功能的Panel控件●Balloon/Alert控件用于传达一些重要的信息给最终用户●Wizard控件支持Wizard97规范,可以创建安装文件。
c#winform及DotnetBar笔记
c#winform及DotnetBar笔记1.DataGridView 格式化显⽰cell⾥的数据⽇期等。
进⼊编辑列,选择要设置的列,DefaultCellStyle⾥->⾏为->formart设置2.tabstrip和mdi窗⼝的结合使⽤给MDI窗⼝加上TabPage。
拖动个tabstrip到MDI窗⼝上tabstrip⾥选择到主窗⼝名就加上TABPAGE了。
dock要设置成top。
但⼦mdi窗⼝在第⼀次打开的时候上⾯⼀截没现实出来,相当于tabpage⾼度⼀截遮挡了mdi窗⼝内容,但第⼆次打开mdi窗⼝就好了。
解决,将mdi support->mdiautohide设置为false就ok了。
3.DevComponents.DotNetBar.TabControl动态添加Tab这个和系统的TabPage不同,⼀个TabPage分为了DevComponents.DotNetBar.TabItem,DevComponents.DotNetBar.TabControlPanel两个部分。
最简单的添加tab和pannels的办法是⽤TabControl.CreateTab⽅法,然后将返回TabItem对象,这样就可以⽤TabIte m.AttachedControl⽅法来访问这个tab的pannel。
在这个pannel上你可以使⽤像TabItem.AttachedControl.Controls. Add(myControl)这样的⽅法代码:TabItem tim = this.tabControl1.CreateTab("⼀个Tab"); Label lblTest = new Label(); lblTest.Text = "wawawa"; tim. AttachedControl.Controls.Add(lblTest);设置dotnetbar主题为⿊⾊black1.继承public partial class Form1 : DevComponents.DotNetBar.Office2007RibbonForm2.引⽤using DevComponents.DotNetBar;using DevComponents.DotNetBar.Rendering;3.页⾯中放⼊⼀个RibbonControl4.设置该控件this.ribbonControl1.Office2007ColorTable =DevComponents.DotNetBar.Rendering.eOffice2007ColorScheme.Black;该句可放到desingner.cs InitializeComponent()⾥。
.NET服务器控件的使用
第四章服务器控件导言服务器控件是什么?服务器控件就是在在服务器端解析的控件,在中,服务器控件也就是有runat=”server”标记的控件,这些控件经过处理后会生成客户端呈现代码发送到客户端。
服务器控件的定义Web服务器控件是应用程序中最常使用的控件,Web服务器控件位于System.Web.UI.WebControls命名空间中。
所有的Web服务器控件都从WebControls基类派生,与HTML服务器控件相比,Web控件提供了一个相对抽象的、一致的编程模型。
相对抽象是指Web服务器控件不必像HTML服务器控件一样必须一一对应一个HTML标签,事实上很多复杂的Web服务器控件所输出的客户端代码都非常复杂。
Web服务器控件也具有一些独有的特性,如自动回发特性等。
服务器控件的分类内部提供的服务器控件大致分为三种类型:HTML服务器控件、标准服务器控件和自定义服务器控件。
(1)HTML服务器控件。
HTML服务器控件是由普通的HTML控件转换而来,其呈现的输出基本上与普通HTML 控件一致。
在转换时,只需要做两步操作即可:第一步,在普通HTML控件特性中添加runat=”server”属性;第二步,设置其ID属性,当普通的HTML控件转化为HTML服务器控件后,即可通过编程来控制它们。
在创建HTML服务器控件时,直接从“工具箱”中拖动选中的HTML控件,放置在页面中即可,然后根据前面所说的两个步骤,下面是一个例子:普通HTML控件:<input name="Text1"type="text"/>HTML服务器控件:<input id="Text1"type="text"runat="server"/>(2)标准服务器控件。
标准服务器控件是框架中预先定义的,它们与HTML控件相比,具有丰富的功能,其操作数据和呈现数据的功能也变得非常强大。
Dotnet学习笔记
学习的基本技能1、要有清晰的思路。
对于自己的学习过程脑子里要有一个清晰的图景。
要清楚要学习的东西的大致框架,自己已经学了哪些,正在学哪些,以后要学哪些;已经学的部分,自己已经学到了一个什么样的深度,还没有学的部分,自己打算学到什么样的深度;所学习的东西,难点在哪,重点在哪;当然,这些认识不是一开始就有的,但是在学的过程中始终要有意识地形成这些概念,而不能越学越浑。
2、宏观和微观认识相结合。
初学一种技术,一开始可能被一大堆函数,参数,命令,类等搞得晕头转向,这时要及时撤出来,先搞清楚类的结构、关系、主要功能是什么。
大致框架心中有数了,再逐步地深入细节,这样才能做到精通。
3、要有较强的分析能力。
有人说过,程序不是写出来的,是调试出来的。
这充分说明了调试的重要。
而调试的过程正是分析能力的体现。
4、要有较强的查找资料的能力。
学习中遇到问题,有人问当然很方便,没人问时就要善于自己找资料解决。
首选的参考资料是联机帮助,对于Visual C#.Net 和来说就是MSDN,因为这是厂商提供的资料,最具有权威性,往往也比较详尽,有些信息是其他资料上找不到的。
5、要有较强的阅读代码的能力。
有时候学习别人的程序会让自己少走很多弯路,少花很多时间。
计算机语言:低级语言和高级语言低级语言:机器语言和汇编语言高级语言:C、C++、VB、Java、C#等等其中,C、C++在高级语言中又属于偏硬件,VB、Java、C#比较更偏向网页;语言等级越低,越容易对硬件进行操作,功能越强大,但等级越高的语言却越越形象具体,容易理解和学习。
机器语言用指令代码编写程序,符号语言用指令助记符来编写程序。
机器语言和汇编语言都依赖于硬件体系,且汇编助记符量大难记,要求程序员非常熟悉硬件的结构和原理。
计算机工作原理:事先编制好程序(由若干条指令组成)和数据会存入计算机的存储器中,计算机在运行时自动、连续的从存储器中逐条取出指令并执行,因此,计算机的工作过程就是运行程序的过程,也就是执行指令的过程。
winform dotnetbrowser 用法
DotNetBrowser 是一个为 .NET 开发者提供的用于在 WinForms 应用程序中嵌入浏览器的工具。
它允许你在 Windows 窗体应用程序中嵌入 Chromium 引擎,并通过C# 代码与嵌入的浏览器进行交互。
以下是在 WinForms 中使用 DotNetBrowser 的基本用法:
1. 添加 DotNetBrowser 到项目:
首先,你需要从 DotNetBrowser 官方网站下载 DotNetBrowser,并将其添加到你的项目引用中。
2. 创建 WinForms 项目:
使用 Visual Studio 创建一个 WinForms 项目。
3. 添加 DotNetBrowser 控件:
在 WinForms 窗体上添加 DotNetBrowser 控件。
你可以在工具箱中找到DotNetBrowser.WinForms.BrowserView控件,将其拖放到窗体上。
4. 初始化 DotNetBrowser:
在窗体的代码文件中,初始化 DotNetBrowser。
在窗体类中添加如下代码:
5. 加载网页:
你可以通过以下方式加载网页:
6. 与 JavaScript 交互:
你可以通过JSObject类与 JavaScript 进行交互:
7. 处理浏览器事件:
你可以处理浏览器的各种事件,如页面加载完成、页面加载失败等:
这只是一个简单的入门示例,你可以根据具体需求进行更复杂的操作。
在使用DotNetBrowser 时,注意查看其官方文档和示例,以获取更详细的信息和用法示例。
第三方控件DevExpress使用整理
第三方控件DevExpress使用整理一、ComboBoxEdit:1、设置private void Form1_Load(object sender, EventArgs e){comboBoxEdit1.Properties.Items.Add(" ");//向comboboxedit中添加数据}二、LookUpEdit:1、设置private void Form1_Load(object sender, EventArgs e){string sql="";lookUpEdit1.Properties.DataSource=sql;//连接数据源lookUpEdit1.Properties.ValueMember="实际要用的字段";//相当于editvaluelookUpEdit1.Properties.DisplayMember="要显示的字段";//相当于textlookUpEdit1.Properties.NullText = null;//清空null值lookUpEdit1.Properties.NullText = "要设置的null值";}2.使用变量 = this.lookupedit.editvalue.tostring(); //是lookupedit.properties.valuemember的值变量 = this.lookupedit.text.trim();//是lookupedit.properties.displaymember 的值eg:把lookupedit中的值绑定到gridviewDepartment department = (Department)this.lookupedit.EditValue;gridview.DataSource = department.Courses;特别值得注意的是,有时候我们要使用lookupedit来实现combox的一些效果,在实际的使用过程中在程序加载的时候会默认的选择第一项,它的设置是:lookupedit.itemindex=0;//选择第一项lookupedit.itemindex=-1;//无选项,此时显示的是nulltext值,其实这个地方只要editvalue==null,lookupedit就显示nulltextlookupedit1.editvalue=value;//自动搜索datasouse,选择与之匹配的值,没有的情况下赋值null ,value的值必须与valuemember的数据类型一致。
DotNetBar 教程
DotNetBar教程(一)DotNetBar是一组用于.NET Framework环境下的一组组件集,利用该组件集能够打造绚丽并且实用的应用程序界面,给开发人员提供极大的便利。
关于DotNetBar,详情请参考其官方网站:该组件集目前最新版本是8.8(不知最近有没有升级版本),可以从该网站上下载到试用期为一个月的试用版本。
正常安装了DotNetBar组件集(前提:已经安装了Visual Studio)之后,会在Visual Studio的工具箱窗口新增一个DotNetBar选项卡,里面是一系列的DotNetBar控件,如图1所示。
在安装目录下有一系列的源码示例可供参考。
网络上也有很多版本的破解版本,不过只提供了一个动态链接库文件,建议使用人员从官网上下载一个试用版,可以参考其丰富的示例。
图1 DotNetBar选项卡一系列控件下面给出一个C#实例,看看DotNetBar绚丽的效果吧。
在正确添加对DotNetBar的引用(DevComponents.Dotnetbar2),在代码中使用对应的命名空间(using DevComponents.DotNet Bar)之后,修改窗体类的定义,默认的窗体类定义如下//此处Form完整的名称是System.Windows.Forms.Form,表示FrmMain窗体类是继承于System.Windows.Forms.Form类public partial class FrmMain : Form{}修改后如下//此处Office2007Form完整的名称是DevComponents.DotNetBar.Office2007Form,表示FrmMain窗体类是继承于DevComponents.DotNetBar.Of fice2007Form类public partial class FrmMain : Office2007Form{}如此该窗体便变为Office2007风格了。
dotnet 扩展方法
dotnet 扩展方法在.NET开发领域,扩展方法是一种非常实用的功能,它允许我们向现有类型“添加”新的方法,而不需要修改其源代码或创建新的派生类型。
这种能力极大地增强了代码的可扩展性和可读性。
本文将详细介绍如何在.NET中使用扩展方法,以及如何编写自己的扩展方法。
### 什么是扩展方法?扩展方法是一种特殊的静态方法,它允许你为现有类型添加新的方法,即使你无法直接修改这些类型的源代码。
在C#和等.NET语言中,扩展方法可以让你扩展任何类型的行为,包括内置类型、第三方库中的类型,甚至是值类型。
### 扩展方法的特点- **静态方法**:扩展方法必须是静态的。
- **第一个参数**:扩展方法在其所在的类中定义的第一个参数指定了要扩展的类型。
- **使用方式**:一旦定义,扩展方法可以像实例方法一样被调用。
### 如何定义扩展方法以下是如何定义一个简单的扩展方法的步骤:1.**创建一个静态类**:扩展方法必须定义在一个静态类中。
2.**指定扩展类型**:扩展方法的第一个参数指定了要扩展的类型,并使用`this`关键字来指示。
3.**定义方法**:像编写普通静态方法一样编写扩展方法的逻辑。
### 示例假设我们要为`string`类型添加一个判断是否是合法电子邮件地址的扩展方法:```csharppublic static class StringExtensions{public static bool IsValidEmail(this string value){// 使用正则表达式检查电子邮件地址格式return System.Text.RegularExpressions.Regex.IsMatch(value, @"^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,7}$");}}```使用扩展方法:```csharpstringemail="*******************";bool isValid = email.IsValidEmail(); // 像调用实例方法一样调用扩展方法```### 注意事项- **性能考虑**:过度使用扩展方法可能会对性能造成影响,因为它们是通过静态方法调用来实现的。
第三方控件(DevExpress)使用大全【个人开发过程中整理收集】
第三方控件使用大全【张杰章开发过程中整理】一、ComboBoxEdit1、如何使其不可编辑TextEditStyle 设置为:DisableTextEditor2、如何设置鼠标为手形Cursor 设置为:Hand二、GridControl1、如何解决单击记录整行选中的问题View->OptionsBehavior->EditorShowMode 设置为:Click2、如何新增一条记录(1)、gridView.AddNewRow()(2)、实现gridView_InitNewRow事件3、如何解决GridControl记录能获取而没有显示出来的问题gridView.populateColumns();4、如何让行只能选择而不能编辑(或编辑某一单元格)(1)、View->OptionsBehavior->EditorShowMode 设置为:Click(2)、View->OptionsBehavior->Editable 设置为:false5、如何禁用GridControl中单击列弹出右键菜单设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false6、如何隐藏GridControl的GroupPanel表头设置Run Design->OptionsView->ShowGroupPanel 设置为:false7、如何禁用GridControl中列头的过滤器过滤器如下图所示:设置Run Design->OptionsCustomization->AllowFilter 设置为:false8、如何在查询得到0条记录时显示自定义的字符提示/显示如图所示:方法如下://When no Records Are Being Displayedprivate void gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e){//方法一(此方法为GridView设置了数据源绑定时,可用)ColumnView columnView = sender as ColumnView;BindingSource bindingSource = this.gridView1.DataSource as BindingSource;if(bindingSource.Count == 0){string str = "没有查询到你所想要的数据!";Font f = new Font("宋体", 10, FontStyle.Bold);Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5,e.Bounds.Right - 5, e.Bounds.Height - 5);e.Graphics.DrawString(str, f, Brushes.Black, r);}//方法二(此方法为GridView没有设置数据源绑定时,使用,一般使用此种方法)if (this._flag){if (this.gridView1.RowCount == 0){string str = "没有查询到你所想要的数据!";Font f = new Font("宋体", 10, FontStyle.Bold);Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top +5, e.Bounds.Width - 5, e.Bounds.Height - 5);e.Graphics.DrawString(str, f, Brushes.Black, r);}}}9、如何显示水平滚动条?设置this.gridView.OptionsView.ColumnAutoWidth = false;10、如何定位到第一条数据/记录?设置this.gridView.MoveFirst()11、如何定位到下一条数据/记录?设置this.gridView.MoveNext()12、如何定位到最后一条数据/记录?设置this.gridView.MoveLast()13、设置成一次选择一行,并且不能被编辑this.gridView1.FocusRectStyle =DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus; this.gridView1.OptionsBehavior.Editable = false;this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;14、如何显示行号?this.gridView1.IndicatorWidth = 40;//显示行的序号private void gridView1_CustomDrawRowIndicator(object sender,RowIndicatorCustomDrawEventArgs e){if (.IsRowIndicator && e.RowHandle>=0){.DisplayText = (e.RowHandle + 1).ToString();}}15、如何让各列头禁止移动?设置gridView1.OptionsCustomization.AllowColumnMoving = false;16、如何让各列头禁止排序?设置gridView1.OptionsCustomization.AllowSort = false;17、如何禁止各列头改变列宽?设置gridView1.OptionsCustomization.AllowColumnResizing = false;18、19、20、21、22、23、24、25、26、三、navBarControl1、如何在每一个navBarGroup里添加自己想要的控件设置GroupStyle: ControlContainer2、如何设置navBarGroup有滚动条设置SkinExplorerBarViewScrollStyle:ScrollBar3、如休把navBarGroup设置成如下样式如图所示:设置navBarGroup的PaintStyleName属性为: SkinNavigationPane四、toolTipController效果图如下:1、如何设置显示的时间长短设置this.toolTipController1.AutoPopDelay = 2000;2、如何在屏幕上显示如上图所示的效果ToolTipControllerShowEventArgs args =this.toolTipController1.CreateShowArgs();this.toolTipController1.SetToolTip(this.sbtnYes, "请选择一条记录!");this.toolTipController1.SetTitle(this.sbtnYes, "提示");this.toolTipController1.SetToolTipIconType(this.sbtnYes,DevExpress.Utils.ToolTipIconType.Exclamation);this.toolTipController1.ShowBeak = true;this.toolTipController1.ShowShadow = true;this.toolTipController1.Rounded = true;this.toolTipController1.ShowHint("请选择一条记录!", "提示"); args.ToolTip = "请选择一条记录!";args.Title = "提示";3、如何设置边框的颜色this.toolTipController1.Appearance.BorderColor = Color.Red;五、TextEdit1、如何设置TextEdit为多行,可拉伸设置TextEdit的Propertity->AutoHeight为:False六、LayoutControl1、如何设置LayoutItem为隐藏设置LayoutItem.Visibility = Never七、TreeList1、如何隐藏TreeList的列头设置TreeListr的OptionsView的ShowColumns属性为:False2、如何八、PictureEdit1、如何禁止PictureEdit的右键菜单?设置PictureEdit的Properties->ShowMenu为:false九、TreeList1、如何让TreeList的每个结点高亮显示?效果如下:代码如下:private void treeList1_CustomDrawNodeCell(object sender,DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs e){TreeList node = sender as TreeList;if (e.Node == node.FocusedNode){e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds);Rectangle r = new Rectangle(e.EditViewInfo.ContentRect.Left,e.EditViewInfo.ContentRect.Top,Convert.ToInt32(e.Graphics.MeasureString(e.CellText, treeList1.Font).Width + 1),Convert.ToInt32(e.Graphics.MeasureString(e.CellText,treeList1.Font).Height));e.Graphics.FillRectangle(SystemBrushes.Highlight, r);e.Graphics.DrawString(e.CellText, treeList1.Font, SystemBrushes.HighlightText, r);e.Handled = true;}}//============================================================================ //===============================以下内容为收集=============================== //============================================================================一、改变grid的样式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DotNet第三方控件使用笔记0、1)ButtonX控件可实现如下效果:在ButtonX上,是否显示“图像,取决于“images“属性2)在“buttomItem“控件中,是否“只是显示图像”,”只是文本”,还是“图像和文本都显示”,取决于1、BalloonTio控件(气泡提示)(1)使用效果1)效果一:在鼠标在控件上面停留时,出现提示信息,如下图:2)效果二:当控件获得焦点时,也出现如上图一样的信息。
(2)实现上述两种效果的途径1)将BalloonTip控件的“ShowBalloonOnFacus”属性设置为“False”即可实现,效果一。
2)将“ShowBalloonOnFacus”属性设置为“True”,即可实现效果二。
(3)设置BalloonTip显示的内容:在欲设置该属性的控件的“BalloonTioOnFocus上的BalloonCaption”和“BalloonTioOnHover上的BalloonCaption”属性中,分别设置这两种效果的“标题”属性;在“BalloonTioOnFocus上的BalloonText”和在“BalloonTioOnHover上的BalloonText”属性中,分别设置这两种效果的“显示内容”的属性。
(4)属性“AlerAnimation”设置“BalloonTip”出现的效果,(5)“BalloonTip”除了出现在该控件附近,还可以出现在屏幕的右下角,示例程序如下:private AlertCustom m_AlertOnLoad=null;m_AlertOnLoad=new AlertCustom();Rectangle r=Screen.GetWorkingArea(this);m_AlertOnLoa d.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”(6)“BalloonTip”除了可以通过“添加控件”的方式使用,也可以通过编程的方式使用,示例程序如下:DevComponents.DotNetBar.Balloon b=new DevComponents.DotNetBar.Balloon();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 overthe area and set the focus to any control.";b.AlertAnimation=eAlertAnimation.TopToBottom;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.BalloonTriggerControl==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.TipOffset,balloonTipHover.BalloonControl.TipLength+ 4);//Offset属性将点p进行平移balloonTipHover.BalloonControl.Location=p;}(8)与之类似的是DotNetToolTip所有控件都有的“ToolTip”属性,也可以是控件在鼠标划过时出现类似的东西,如下图2、DotNetBarManager控件与Bar控件的使用示例效果如下图:(1)DotNetBarManager控件----将该控件添加到工程后,将给Bar控件提供了“停靠点(DockSite)”,可以实现是工具栏在窗体的“上、下、左、右“摆放。
可以通过程序实现,也可以通过“属性页“的”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 Document";// 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 DevComponents.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;try{foreach(DevComponents.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;}}finally{dotNetBarManager1.SuspendLayout=false;}(2×)下面的代码通过编程的方式实现如下图所示的功能private void Form1_Load(object sender, System.EventArgs e){dotNetBarManager1.DockTabChange+=newDotNetBarManager.DockTabChangeEventHandler(this.DockTabChanged);CreateBottomBarAutoHide();CreateLeftDockedBars();}private void DockTabChanged(object sender, DockTabChangeEventArgs e){// Sync caption of the bar 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");="bottomBar";youtType=eLayoutType.DockContainer; // Dock Container Layout needed for dockable windows bar.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 captions dotNetBarManager1.Bars.Add(bar); // DotNetBar needs to be aware of the bar so it can manage it's 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();bel1.Text=+" - "+dockItem.Text;dockedControl.BackColor=Color.Azure;dockItem.Control=dockedControl; // Specify that control is hosted on the dock container dockItem.Height=128; // Specify the height of the dockable container and at the same time control// Create second dock container and add it to the bardockItem=new DockContainerItem("bottomDockItem2","Second dock item");bar.Items.Add(dockItem);dockedControl=new UserControl1();bel1.Text=+" - "+dockItem.Text;dockedControl.BackColor=Color.Aquamarine;dockItem.Control=dockedControl; // Specify that control is hosted on 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. Bar needs to be docked before it can be places in auto-hide mode}private void CreateLeftDockedBars(){// Dock first two bars side by side and dock third bar next to them...Bar bar=new Bar("Bar1");="leftBar1";youtType=eLayoutType.DockContainer; // Dock Container Layout needed for dockable windows bar.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 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();bel1.Text=+" - "+dockItem.Text;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 it's docking etc.dotNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar); //Performs 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");="leftBar2";youtType=eLayoutType.DockContainer; // 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// Add 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();bel1.Text=+" - "+dockItem.Text;dockedControl.BackColor=vender;dockItem.Control=dockedControl; // Specify that control is hosted on the dock container dotNetBarManager1.Bars.Add(bar2); // DotNetBar needs to be aware of the bar so it can manage it's docking etc.dotNetBarManager1.LeftDockSite.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");="leftBar3";youtType=eLayoutType.DockContainer; // Dock Container Layout needed for dockable windows bar.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 DockContainerItem("leftDockItem3","Left Dock Container line 1");bar.Items.Add(dockItem);// Create control that is hosted on dock containerdockedControl=new UserControl1();bel1.Text=+" - "+dockItem.Text;dockedControl.BackColor=Color.LemonChiffon;dockItem.Control=dockedControl; // Specify that control is hosted on the dock container dotNetBarManager1.Bars.Add(bar); // DotNetBar needs to be aware of the bar so it can manage it's docking etc.dotNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar);// Setting the width of the dock site will also scale the bars docked inside,// however 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)“可视化“的方式在“设计器“里可以通过”右键“来实现;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添加新建item=new ButtonItem("bNew");-----------------------------------------------------item.ImageIndex=0;// item.Image = imageList1.Images[0];-------------------------------------------------item.Text="&New";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.Text="&Open";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="&1. File1.txt";item.SubItems.Add(fileItem);fileItem=new ButtonItem("file2");fileItem.Text="&2. File2.txt";item.SubItems.Add(fileItem);fileItem=new ButtonItem("file3");fileItem.Text="&3. File3.txt";item.SubItems.Add(fileItem);fileItem=new ButtonItem("file4");fileItem.Text="&4. File4.txt";item.SubItems.Add(fileItem);fileItem=new ButtonItem("file5");fileItem.Text="&5. File5.txt";item.SubItems.Add(fileItem);// Closeitem=new ButtonItem("bClose");item.ImageIndex=2;item.Text="&Close";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="&Save";item.Shortcuts.Add(eShortcut.CtrlS);item.Category="Standard";bar.Items.Add(item);m_DotNetBar.Items.Add(item.Copy());// Print Previewitem=new ButtonItem("bPrintPreview");item.ImageIndex=6;item.Text="Print Pre&view";item.Category="Standard";item.BeginGroup=true;bar.Items.Add(item);m_DotNetBar.Items.Add(item.Copy());// Printitem=new ButtonItem("bPrint");item.ImageIndex=5;item.Text="&Print";item.Category="Standard";item.Shortcuts.Add(eShortcut.CtrlP);bar.Items.Add(item);m_DotNetBar.Items.Add(item.Copy());// E-Mailitem=new ButtonItem("bEmail");item.ImageIndex=4;item.Text="&Email";item.Category="Standard";item.BeginGroup=true;bar.Items.Add(item);m_DotNetBar.Items.Add(item.Copy());// Customize Item添加“添加/删除“按钮CustomizeItem citem=new CustomizeItem();bar.Items.Add(citem);// Since we will be using ImageList bar have to be added to the DotNetBar Manager //将Bar加入DotNetBar Managerm_DotNetBar.Bars.Add(bar);bar.DockSide=eDockSide.Top;}(4)为所有选项添加“事件“this.m_DotNetBar.ItemClick += new System.EventHandler(this.BarItemClick);-----------------------------------------------------------------private void BarItemClick(object sender, EventArgs e){BaseItem item = sender as BaseItem;if (item == null || == "" || item.SystemItem)return;MessageBox.Show("Item '" + + "' clicked");}(4)//设置窗体的大小AutoScaleBaseSize属性的值在窗体显示时使用,用来计算该窗体的缩放因子。