046ToolStrip类
目录
1.工具栏TooIStrip概述
2.TooIStrip控件的属性
3.创建工具栏
工具栏是一个与菜单栏同等重要的窗体界面元素。在MDI应用程序中,工具栏也能像菜单一样实现合并,即可以在主窗体的工具栏中放上全局通用的工具项,而针对特定子窗体的工具项在子窗体中设计,显示的时候与主窗体的工具栏合并显示。
1.工具栏TooIStrip概述
Windows窗体中的工具栏控件用于显示一系列菜单选项的位图按钮。这样单击工具栏中的一个按钮,就相当于选择了一个菜单项。工具栏上的按钮通常包含图片,不包含文本,但它可以既包含图片又包含文本。除了按钮外,工具栏上也可以包含组合框和文本框。通常情况下,工具栏包含的按钮和菜单与应用程序菜单结构中的选项相对应,以提供对应用程序的常用功能和选项的快速访问。
工具栏TooIStrip与MenuStrip一样具有专业化的外观和操作方式。通常情况下,工具栏停靠在其父窗口的顶部,也可以停靠在窗口的任百边。用户可以改变工具栏的尺寸,或随意拖动工具栏。当将鼠标指向工具栏按钮时,可以显示工具提示,给出该按钮的用途信息。工具提示是用于简述按钮或者菜单用途的一个小的弹出式窗口,这对只显示图标的工具栏按钮非常有用。
实际上,TooIStrip是MenuStrip,StatusStrip和ContextMenuStrip的抽象基类。TooIStrip控件为工具栏相关项(如菜单、按钮和文本框)的容器,即工具栏中的选项是在TooIStrip中显示。而TooIStrip的派生类则以其他方式(如在菜单中或在状态栏中)显示选项。
ToolStrip 控件体系结构
TooIStrip控件作为一个容器,也就可以通过其Items集合,访问TooIStrip中的所有工具栏选项。这些工具栏选项都是从ToolStripltem抽象类中派生的。工具栏选项可以直接从TooIStripltem类继承,也可以通过TooIStripControLHost或TooIStripDropDownltem间接从ToolStripltem继承。TooIStripltem继承层次结构如图。
TooIStripltem的选项类型
项类型 | 用户界面元素 |
TooStripLabel | 表示工具栏中的一个标签 |
ToolStripButton | 表示工具栏中的一个按钮 |
ToolStripSeparator | 表示工具栏和菜单中的水平或垂直线 |
TooStripControlHost | 包含寄宿的控件的用户界面元素 |
TooStripSpiltButton | 显示为一个右端带有下拉按钮的按钮,单击该下拉按钮,就会在它的下面显示一个菜单 |
ToolStripComboBox | 表示工具栏中的一个组合框Combobox |
ToolStripProgressBar | 表示在工具栏中嵌入一个进度条ProgressBar |
TooStripTextBox | 表示工具栏中一的个文本框 |
ToolStripMenuitem | 表示MenuStrip或ContextMenuStrip上显示的可选选项 |
ToolStripDropDownButton | 类似于TooStripSplitButton,区别是去除了下拉按钮,以下接数组图像替代 |
2.TooIStrip控件的属性
可以查看这个链接:ToolStrip 类
AllowItemReorder |
获取或设置一个用于指示是否专门由 ToolStrip 类处理拖放和项重新排序操作的值。 |
AllowMerge |
获取或设置一个值,该值指示能否将多个 MenuStrip、ToolStripDropDownMenu、ToolStripMenuItem 及其他类型进行组合。 |
BindingContext |
获取或设置 ToolStrip 的绑定上下文。 |
Items |
获取属于 ToolStrip 的所有项。 |
LayoutStyle |
获取或设置一个值,该值指示 ToolStrip 如何对项集合进行布局。 |
Stretch |
获取或设置一个值,该值指示 ToolStrip 在 ToolStripContainer 中是否从一端拉伸到另一端。 |
ShowItemToolTips |
获取或设置一个值,该值指示是否在 ToolStrip 项上显示工具提示。 |
Visible |
获取或设置一个值,该值指示是否显示该控件及其所有子控件。 (继承自 Control) |
VScroll |
获取或设置一个值,该值指示垂直滚动条是否可见。 (继承自 ScrollableControl) |
3.创建工具栏
续045快捷菜单,添加一个工具栏,并且该工具栏可以停靠在窗体的四个边框。
(1)为了使工具栏可以在父窗体的四个边框停靠,需要添加TooIStripPanel控件。由于该控件并不在“工具箱”中,因此,需要在“工具箱”中右击打开快捷菜单,再选择“选择项”打开“选择工具箱项”对话框,从中找到并选择TooIStripPanel。
(2)从“工具箱”中将一个TooIStripPanel控件拖动到主窗体上,并选择TooIStripPanel控件,在“工具箱”中双击TooIStrip控件,这样在TooIStripPanel控件中会创建一个TooIStrip控件。
(3)添加四个TooIStripPanel控件,分别停靠于窗体的左侧、顶部、右侧和底部。修改其Dock属性为Left. Top, Right和Bottom,并修改其Name属性为tspLeft. tspTop. tspRight和tspBottom。
(4)选中添加的TooIStrip控件,向其中添加一个TooIStripButton按钮。单击Image属性中的省略号(…)按钮,找开如图10-14所示“选择资源”对话框。在该对话框中单击“导人“按钮,选择该工具栏按钮所使用的图像。
(VS2010安装文件夹”C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\VS2010ImageLibrary\2052“中有图库)
(5)在主窗体中分别添加“新建”, “打开”和“保存”工具栏按钮,一修改其Name属性为:btnNew、btnOpen和btnSave。
(6)选择“新建”工具栏按钮,在其“属性”窗口中单击“事件”标签打开控件的事件窗口,在Click事件中选择NewMenultemClick,
Private Sub btnNew_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.ClickNewMenuItem.PerformClick()End Sub
(7)双击“打开”工具栏按钮,添加如下的Click事件处理程序。
Private Sub btnOpen_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.ClickOpenFileDialog1.DefaultExt = "*.txt"OpenFileDialog1.Filter = "RTF文档(*.rtf)|*.rtf|文本文件((.txt)|*.txt|所有文件(*.*)|*.*"OpenFileDialog1.ShowReadOnly = TrueDim filename As String = NothingIf OpenFileDialog1.ShowDialog = DialogResult.OK And OpenFileDialog1.FileName.Length > 0 Thenfilename = OpenFileDialog1.FileNameNewMenuItem.PerformClick()Dim activechild As ChildFrm = Me.ActiveMdiChildIf Not activechild Is Nothing ThenDim fileExt As String = NothingIf filename.Trim <> String.Empty Thenactivechild.txtContent.ResetText()fileExt = IO.Path.GetExtension(filename).ToUpperIf fileExt = "*.RTF" Thenactivechild.txtContent.LoadFile(filename, RichTextBoxStreamType.RichText)Elseactivechild.txtContent.LoadFile(filename, RichTextBoxStreamType.PlainText)End Ifactivechild.curFileName = filenameMe.Text = filenameEnd IfEnd IfEnd IfEnd Sub
(8) 双击“保存”工具栏按钮,添加如下的事件处理程序。
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.ClickDim activechild As ChildFrm = Me.ActiveMdiChildIf Not activechild Is Nothing Thenactivechild.savedocument()End IfEnd Sub
(9)对于“保存”工具栏按钮,当父窗体中未包含任何子窗体时, “保存”工具栏按钮应该被禁用。可以为TooIStrip控件添加如下的Paint事件处理程序。
Private Sub ToolStrip1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ToolStrip1.PaintDim activechild As Form = Me.ActiveMdiChildIf activechild Is Nothing ThenbtnSave.Enabled = FalseElsebtnSave.Enabled = TrueEnd IfEnd Sub
046ToolStrip类相关推荐
- 自己搜集编写的Delphi 通用函数
{ ********************************************************************** } { Currency Common Functio ...
- 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题
继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...
- MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段
mybatis plus忽略映射字段时可以在实体类属性上使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(e ...
- IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...
使用IDEA项目添加Hibernate扩展,生成实体类并配置实体类中的注解 一.使用Hibernate自动生成实体类 1.在项目上右键,选择Add Framework Support找到 Hibern ...
- IDEA自动生成类注解,IDEA作者信息自动生成,IDEA类信息自动生成
在新建类文件的时候自动生成注解,诸如我们常见的那些 作者,创建时间,TODO 等等 将以下格式的代码放在Settings -> File and Code Templates -> Inc ...
- javabean实体类与实体类之间的快速转换
一.Dozer是什么? dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样. 使用方法示例如下: // article(PO) -> art ...
- 利用dom4j将实体类转换为对应的xml报文
利用dom4j生成xml报文 目标格式: <?xml version="1.0" encoding="GBK"?><Packet type=& ...
- Idea groovy表生成实体类带注释
Idea groovy表生成实体类带注释 1.点开datasourse,打开idea带的数据库工具,具体添加数据库连接,这里不描述. 这时点击会生成一个poji 这时生成的pojo中是不带中文注释的, ...
- java带参数的方法笔记_具有Java参数的方法的类声明
类声明可以包含在Java中具有参数的方法.演示此过程的程序如下: 示例class Message { public void messagePrint(String msg) { System.out ...
最新文章
- Visual C#创建资源文件
- 成功解决xgboost.core.XGBoostError: b'[20:58:45] C:\\Users\\Administrator\\Desktop\\xgboost\\dmlc-core\\s
- hexo博客修改博文中日期的颜色
- python web界面整合 tail_如何使用Python Tornado在HTTP上实现“ tail”?
- android中虚拟程序停止,为什么我的在虚拟机运行后出现应用程序停止运行
- 当大数据遇上“智慧园区”会怎样?
- NGUI的slider的滑动条制作(SliderScript)
- php文件的上传与删除方法
- tweenlite的组合使用
- julia的几种画图方法
- cad图纸服务器共享文件慢,DWG文件打开慢?3个技巧教你实现快速预览!
- 基于WebUploader的文件上传插件
- 赚自己的淘宝佣金,让返利网无路可走
- 招聘后台投递设置联动按钮迭代开发总结
- 显示屏色温调节 影响 测试软件,教你把显示器调到最佳效果
- 怎么利用pytorch训练好的模型测试单张图片
- 大学计算机基础知识学习计划,大学个人学习计划
- 跟着Nature学作图:最强“ 颠覆性 ”技术,您确定不学学?助力发Nature顶刊!...
- 【最全】ISTQB- FL大纲(含重点)
- 基于Cookie-Editor与curl实现跨设备的文件下载
热门文章
- 下一代容器架构已出,Docker何去何处?看看这里的6问6答!!
- mysql select iden_MYSQL之select的高级用法
- 旋转矩阵欧拉角万向锁详解
- 2020年车工(中级)考试及车工(中级)考试试卷
- 关于padding,margin,width用百分比表示时以什么为基准
- 解决方案 Rect width exceeds maximum margin
- 英语专栏——Blog
- 全球及中国智慧养老系统行业市场需求预测及投资竞争力分析报告2022-2028年
- ChatGLM-6B 的部署与微调以及过程中涉及知识总结(7.26更新)
- 常用的网页开发工具有哪些