类似 VS.Net 的工具箱






4.84/5 (26投票s)
2002年9月20日
3分钟阅读

250437

9980
这是一个类似 Visual Studio .NET 的工具箱控件,具有动画和拖放支持。
引言
这是一个类似 Visual Studio .NET 的工具箱控件。它具有原始控件的所有动画,以及更多动画效果。 它可以高度自定义,正如您在快照中看到的那样。 我从真实的工具箱中复制了图标和选项卡,因此它看起来就像原始的工具箱。
公共方法
ToolBox(Size sz,int Button_Height,ContextMenu Menu)
- sz - 必需 指定工具箱的大小。
- Button_Height - 可选 指定按钮的高度。 如果为负值,则使用默认值
- Menu - 可选 指定ListView的上下文菜单。
void AddTab(string Caption,int ImgIndex,ImageList ImgList) void AddTab(ToolBoxTab Tab)
- AddTab 向工具箱添加另一个类别。
void AddItem(string Caption,int ImageIndex,int TabIndex)
void AddItem(ToolBoxItem Item, int TabIndex)
- AddItem 将项目添加到TabIndex中指定的选项卡。
ToolBoxTab GetTab(int Index)
- GetTab 在给定索引处检索 ToolBoxTab 对象。
int GetTabCount()
- 返回选项卡的数量。
bool RemoveTab(int Index)
- 删除 Index 中指定的选项卡。
bool RemoveItem(int TabIndex, int ItemIndex)
- 删除给定索引处指定的项目。
void Compress()
- 使工具箱收缩。
void Expand()
- 使工具箱展开。
void EndAllMovement()
- 停止所有选项卡移动。
bool ScrollUp()
- 如果可能,将可见的ListView向上滚动一项。
bool ScrollDown()
- 如果可能,将可见的ListView向下滚动一项。
bool SetSize(Size sz)
- 修改工具箱的大小。
这些是主要方法,除了我将在此处解释的三个方法。
public delegate void OnToolBoxClick(int TabIndex,int ItemIndex);
public delegate void OnToolBoxTabChanged(int TabIndex);
public delegate void OnToolBoxStateChanged(int State);
这些委托类型是工具箱发送的事件。 例如,如果您想知道何时更改了当前选项卡,请执行以下操作
- 在您的应用程序中实现一个类似这样的方法
void OnTBTabChanged(int TabIndex)
- 当您初始化工具箱时,您需要让工具箱知道在事件触发时调用什么函数
tb.SetTabChangedDelegate(new ToolBox.OnToolBoxTabChanged(OnTBTabChanged));
现在,每次选择新选项卡时,都会调用您的方法,并接收可以与 GetTab 方法一起使用的选项卡的索引。
SetDelegate 方法是
void SetClickDelegate(OnToolBoxClick OnTBxClick)
- 此方法设置在单击ListView项目时调用的委托方法。
void SetTabChangedDelegate(OnToolBoxTabChanged OnTBTabChange)
- 此方法设置在选择新选项卡时调用的委托方法
void SetStateChangedDelegate(OnToolBoxStateChanged OnTBStateChange)
- 此方法设置在工具箱状态更改时调用的委托方法。 例如,请参阅演示应用程序中的状态标签。
工具箱的状态可以是以下之一
- ToolBox.States.Compressed = 1
- ToolBox.States.Compressing = 2
- ToolBox.States.Extended = 3
- ToolBox.States.Extending =4
enum States {Compressed=1,Compressing,Extended,Extending};
这些是所有公共方法。
属性
int DelayBeforeRetreat
- 这获取/设置鼠标不再在其上时工具箱开始收缩前的时间(以毫秒为单位)。
string DragDropSeparatorText
- 这获取/设置执行拖放操作时,选项卡文本和项目文本之间的分隔符文本 默认值为“.”。
SelectedTab
- 这获取/设置选定的选项卡。 如果指定了一个新选项卡,它的行为就像用户单击了它一样
int State
- 这获取工具箱的状态。 如果要更改其状态,请调用 Extend 和 Compress 方法。
int TabAcceleration
- 这获取/设置选项卡移动的加速度 默认为 2。
int TabTime
- 这获取/设置选项卡移动的时间(以毫秒为单位)。
int TimerInterval
- 这获取/设置刷新计时器间隔。
string TitleText
- 这获取/设置工具箱的标题。
Image ToolBoxImage
- 这获取/设置用于工具箱左侧的图像。
将工具箱添加到您的应用程序
这非常简单。 只需执行以下操作
- 添加 ToolBoxLib.dll 的引用。
- 在应用程序的开头添加以下代码行
- 声明一个 ToolBox 类型的变量。
- 在构造函数中,在 InitializeComponent(); 之后,设置 Toolbox 的参数。
using ToolBoxLib
这是一个例子。
tb = new ToolBox(new Size(200,ClientRectangle.Height-28),18,ToolBoxContextMenu);
tb.Location = new Point(0,28);
tb.SetClickDelegate(new ToolBox.OnToolBoxClick(OnTBClick));
tb.SetTabChangedDelegate(new ToolBox.OnToolBoxTabChanged(OnTBTabChanged));
tb.SetStateChangedDelegate(new ToolBox.OnToolBoxStateChanged(OnTBStateChanged));
tb.Show();
this.Controls.Add(tb);
tb.BringToFront();