046ToolStrip类

article/2025/8/24 13:06:27

 

目录

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


 


http://chatgpt.dhexx.cn/article/Sx28ZMOm.shtml

相关文章

java dbscan_聚类(DBSCAN)算法原理

DBSCAN(Density-Based Spatial Clustering of Applications with Noise&#xff0c;具有噪声的基于密度的聚类方法)是一种很典型的密度聚类算法&#xff0c;和 K-Means&#xff0c;BIRCH 这些一般只适用于凸样本集的聚类相比&#xff0c;DBSCAN既可以适用于凸样本集&#xff0c…

DBSCAN 简记

一、DBSCAN 简记 1.先上图 上图写了DBSCN算法的具体步骤&#xff1a; 2.参数主要由半径R&#xff0c;主要用来寻找核心点P的邻域&#xff0c;min_samples为圆内点的最小点数&#xff0c;如果大于等于则认为中心点有效。 3.流程&#xff1a; 1. 随意选择一个未被访问过的点&a…

dbscan java_DBSCAN算法的Java,C++,Python实现

最近由于要实现‘基于网格的DBSCAN算法’&#xff0c;网上有没有找到现成的代码[如果您有代码&#xff0c;麻烦联系我]&#xff0c;只好参考已有的DBSCAN算法的实现。先从网上随便找了几篇放这儿&#xff0c;之后对比研究。 DBSCAN简介&#xff1a; 1.简介 DBSCAN 算法是一种基…

DBSCAN聚类

1.原理DBSCAN密度聚类算法https://www.cnblogs.com/pinard/p/6208966.html详解DBSCAN聚类 - 知乎使用DBSCAN标识为员工分组 基于密度的噪声应用空间聚类(DBSCAN)是一种无监督的ML聚类算法。无监督的意思是它不使用预先标记的目标来聚类数据点。聚类是指试图将相似的数据点分组到…

dbscan算法python实现_Python实现DBScan

Python实现DBScan 运行环境 Pyhton3 numpy(科学计算包) matplotlib(画图所需&#xff0c;不画图可不必) 计算过程 st>start: 开始 e>end: 结束 op1>operation: 读入数据 cond>condition: 是否还有未分类数据 op2>operation: 找一未分类点扩散 op3>operation:…

DBSCAN 算法

DBSCAN 算法 DBSCAN的由来 DBSCAN它将簇定义为密度相连的点组成的最大集合&#xff0c;能够把具有足够高密度的区域划分为簇&#xff0c;并可在噪声的空间数据库中发现任意形状的聚类 在k-means中 , 每个点有且只有一个簇 , 且必须属于一个簇 , 但是在DBSCAN中 , 点最多属于…

DBSCAN算法

本文简单介绍DBSCAN算法的原理及实现。 DBSCAN算法原理 基本概念 DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;是一种基于密度的空间聚类算法。该算法将具有足够密度的区域划分为簇&#xff0c;并在具有噪声的空间数据库中发…

DBSCAN点云聚类

1、DBSCAN算法原理 DBSCAN是一种基于密度的聚类方法&#xff0c;其将点分为核心点与非核心点&#xff0c;后续采用类似区域增长方式进行处理。下图为DBSCAN聚类结果&#xff0c;可见其可以对任意类别的数据进行聚类&#xff0c;无需定义类别数量。 DBSCAN聚类说明 DBSCAN聚类过…

DBSCAN

DBSCAN 算法将具有足够高密度的区域划分为簇&#xff0c;并可 以发现任何形状的聚类 DBSCAN算法概念 &#x1d6c6;邻域&#xff1a;给定对象半径&#x1d700;内的区域称为该对象的&#x1d700;邻域。核心对象&#xff1a;如果给定 &#x1d700; 邻域内的样本点数大于等于M…

密度聚类之DBSCAN算法原理

DBSCAN(Density-Based Spatial Clustering of Applications with Noise&#xff0c;具有噪声的基于密度的聚类方法)是一种很典型的密度聚类算法&#xff0c;和K-Means&#xff0c;BIRCH这些一般只适用于凸样本集的聚类相比&#xff0c;DBSCAN既可以适用于凸样本集&#xff0c;也…

总结:机器学习之DBSCAN

一、基本思想 DBSCAN是一种基于密度的聚类算法&#xff0c;这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本&#xff0c;他们之间的紧密相连的&#xff0c;也就是说&#xff0c;在该类别任意样本周围不远处一定有同类别的样本存在。 通过将紧密…

聚类算法也可以异常检测?DBSCAN算法详解。

一、算法概述 DBSCAN是一个出现得比较早&#xff08;1996年&#xff09;&#xff0c;比较有代表性的基于密度的聚类算法&#xff0c;虽然这个算法本身是密度聚类算法&#xff0c;但同样可以用作异常检测&#xff0c;其思想就是找到样本空间中处在低密度的异常样本&#xff0c;本…

DBSCAN详解

一、基本概念 DBSCAN的基本概念可以用1&#xff0c;2&#xff0c;3&#xff0c;4来总结。 1个核心思想&#xff1a;基于密度 直观效果上看&#xff0c;DBSCAN算法可以找到样本点的全部密集区域&#xff0c;并把这些密集区域当做一个一个的聚类簇。 2个算法参数&#xff1a;邻…

【机器学习】DBSCAN聚类算法

DBSCAN聚类算法 DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff0c;具有噪声的基于密度的聚类方法&#xff09;是一种基于密度的空间聚类算法。 1.基本概念 核心对象:若某个点的密度达到算法设定的阈值则其为核心点。(即r的 ϵ \e…

30款APP源码打包 Java Android安卓App源码 30款打包下载

[30款APP源码打包 Java Android安卓App源码 30款打包下载](访问密码: 168168)(https://474b.com/file/29013429-461457489)

【Android】Android源码下载

学而不思则罔&#xff0c;思而不学则殆 【Android】Android源码下载 一.环境准备虚拟机Ubuntu系统 二.Android源码下载Ubuntu下载1.repo下载2.修改源代码镜像地址3.初始化仓库4.指定版本5.同步源码树 Windows下载1.repo下载2.修改源代码镜像地址3.初始化仓库4.指定版本5.同步源…

下载Android源码流程(完整版)

要在Linux环境下操作&#xff0c;要在Linux环境下操作&#xff0c;要在Linux环境下操作~~ 不要想在Windows环境下操作&#xff0c;因为会有各种问题。Windows环境的童鞋又不想装双系统的可以跟着下面的操作&#xff0c;Linux的童鞋可以直接跳过看。Mac的童鞋就略过~~~ &#x…

Android系统源码下载

1&#xff0c;ubuntu电脑 2&#xff0c;下载 repo 工具: mkdir ~/bin PATH~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod ax ~/bin/repo3&#xff0c; 建立工作目录: mkdir WORKING_DIRECTORY cd WORKING_DIRECTORY4&am…

Android系统源码_下载编译——从下载系统源码到编译系统镜像

前言 近期因工作原因&#xff0c;需要频繁编译、调试Android源码 &#xff0c;特别是修改framework层的源码&#xff0c;经过不懈努力&#xff0c;终于可以正常调试了。 这里进行一些总结和分享。 参考文章&#xff1a;清华镜像之Android 镜像使用帮助、Android系统源码编译 …

下载并编译Android源码

下载编译源码 系统架构&#xff1a; Linux&#xff1a;Linux内核和驱动模块&#xff08;USB Camera 蓝牙等&#xff09; Libraries&#xff1a;提供动态库&#xff0c;Android运行时库、Dalvik虚拟机等&#xff0c;大部分是C 和C写的&#xff0c;可以看成是native层 Framewo…