精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。”需要全文内容也请联系孙老师。
I looked for a kind of flyout toolbar in C#. The only article I found was: "Creating Flyout Toolbars". You can find the article here. But the code is written in C++. So I decided to write my own version in C#.
我寻找在c#中弹出的工具栏的代码。我在唯一的一篇文章中发现:“创建弹出工具栏”。你可以在这里找到这篇文章。但是代码是用c++写的。所以我决定在c#中写我自己的版本。
The goal is to have not too many buttons on a toolbar. If you click long enough on a button, a toolbar appears. Simply drag the cursor on the toolbar and select the button of your choice by releasing the mouse button. After that, if you quickly click this button, the corresponding function is performed.
我们的目标是在工具栏上没有太多的按钮。如果你单击一个按钮的时间足够长,会出现一个工具栏。只需将光标拖在工具栏,并通过释放鼠标选择您需要的按钮。之后,如果你快速点击这个按钮,就会执行相应的功能。
Copy the file 'CSFOToolbar.cs' into the directory of your project and in the solution, add the file with 'Add existing item...' 复制“CSFOToolbar.cs”文件到您的解决方案的项目目录,添加文件到“现有的项目……”
Build up a first time the solution. You will see a new component in the toolbar of Visual Studio. 首次建立一个解决方案。您将看到在Visual Studio的工具栏中一个新的组件。
Drag a CSFOToolbar component to the form or in a toolstrip container. Remark: the CSFOToolbar component behaves like a classic ToolStrip. 把CSFO工具栏组件拖到表单或一个工具栏的集合中。备注:CSFO工具栏组件像一个经典的工具栏。
Add some toolstrip buttons in the CSFOToolbar component. 在CSFO工具组件中添加一些工具栏按钮。
Add one or more classic toolstrip(s) on the main form. 在主要的表单中添加一个或多个经典的工具栏。
Add toolstrip buttons into those toolstrips. 添加工具栏按钮到这些工具栏中。
Add click events for those toolstrip buttons. Attention: each button must have a click event defined previously otherwise it won't work out (the button could not be selected). 给那些工具按钮添加点击事件。注意:每个按钮定义之前必须有一个单击事件否则它不会工作(按钮不能被选中)。
Add the form_load method in the project and call the method 'AddFlyout()' of the CSFOToolbar for each button you want to attach a flyout toolbar to. By doing this, the classic toolstrip will become a flyout toolbar. 在项目中添加form_load方法并且给每个你想附加的弹出工具栏按钮调用AddFlyout()。通过这样做,典型的工具栏将成为弹出工具栏。
Example:例子:The first parameter is the button of the CSFOToolbar which is attached to the toolstrip, 第一个参数是被附连到工具栏的按钮
The second parameter is the toolstrip to attach (that becomes a flyout toolbar), 第二个参数是附加(即变成一个弹出工具栏)的工具栏,
The third parameter indicates the index (0 based) of the button in the flyout toolbar that will be selected by default (at start). 第三个参数表明该指数基于(0)的弹出工具栏按钮,将会默认选中(开始)。
Remark: Do not create a click event for the button with a flyout toolbar attached in the CSFOToolbar. 备注:附加在CSFOToolbar中的弹出工具栏的按钮不用创建单击事件.
Each button with a flyout toolbar is marked with a red triangle in the down right corner. 弹出工具栏的每个按钮右下角被标上一个红色的三角形。
Corner color: the color of the triangle (default: red), 三角形的颜色(默认值:红色),
Corner size: the size in pixel of the triangle (default: 6), 三角形的大小(默认值:6),
Delay: the time (in ms) before the flyout appears (default: 300ms). 延迟:弹出的时间(毫秒)(默认值:300 ms)。
Orientation: define the orientation of the flyout toolbar. Possible values are: 方向:定义弹出工具栏的方向。可能的值是:
Horizontal: the flyout toolbar is always displayed horizontally (default), 水平:弹出工具栏总是水平显示(默认),
Vertical: the flyout toolbar is always displayed vertically, 垂直:弹出工具栏总是垂直显示,
Same: the flyout toolbar is always displayed in the same orientation of its ‘main’ toolbar, 相同:弹出工具栏总是和“主要”工具栏显示的方向相同,
Opposite: the flyout toolbar is always displayed in the opposite orientation of its ‘main’ toolbar. 相反:弹出工具栏总是和“主要”工具栏显示的方向相反。
Restrict: Restrict the display of the flyout toolbar to the area of the form (default: false).限制:限制弹出工具栏的显示面积(默认值:false)。
How to transfer the event click handler from a toolstrip button to another one in another toolstrip using reflection (the methods: ModifyComponentEventHandler(…) and GetDelegate(…)), 使用反射(方法:ModifyComponentEventHandler(…)和GetDelegate(…))如何将一个按钮的单击事件转移到另一个工具栏的按钮上,
How to use a form to display a flyout (or floating) toolstrip (the class CSFOform), 如何使用一个表单来显示一个弹出(或流动)工具栏(类CSFOform),
How to manage events from a control (a toolstrip button) into another control (the form of the flyout toolstrip), 如何管理事件从一个控件(工具栏按钮)到另一个控件(弹出出工具栏),
How to find a toolstrip button at the mouse position (the method: FindButton(…)), 如何找到在鼠标位置的工具栏按钮(方法:FindButton(…)),
How to modify the orientation of a toolstrip by modifying the layout style (the method: ReturnLayoutStyle(…)), 如何通过修改布局风格修改工具栏的方向(方法:ReturnLayoutStyle(…)),
An example of using the toolstrip renderer (the class: CSFOToolbarRenderer), 一个使用工具栏渲染器的例子(类:CSFOToolbarRenderer),
An example of using timer, 使用定时器的一个例子,
An example of forcing to display a tooltip on a toolstrip (in the method c_MouseMove(…) of CSFOForm,) 显示在工具栏上的工具提示的例子(方法c_MouseMove CSFOForm(…),)
This class is developed under Visual Studio 2005 with framework 2.0. 这个类是在Visual Studio 2005中与框架2.0下开发。