65.9K
CodeProject 正在变化。 阅读更多。
Home

类似 VS.Net 的工具箱

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.84/5 (26投票s)

2002年9月20日

3分钟阅读

viewsIcon

250437

downloadIcon

9980

这是一个类似 Visual Studio .NET 的工具箱控件,具有动画和拖放支持。

Sample Image

引言

这是一个类似 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);

这些委托类型是工具箱发送的事件。 例如,如果您想知道何时更改了当前选项卡,请执行以下操作

  1. 在您的应用程序中实现一个类似这样的方法
    void OnTBTabChanged(int TabIndex)
  2. 当您初始化工具箱时,您需要让工具箱知道在事件触发时调用什么函数
    tb.SetTabChangedDelegate(new ToolBox.OnToolBoxTabChanged(OnTBTabChanged));
    现在,每次选择新选项卡时,都会调用您的方法,并接收可以与 GetTab 方法一起使用的选项卡的索引。

     

SetDelegate 方法是

void SetClickDelegate(OnToolBoxClick OnTBxClick)
  • 此方法设置在单击ListView项目时调用的委托方法。
void SetTabChangedDelegate(OnToolBoxTabChanged OnTBTabChange)
  • 此方法设置在选择新选项卡时调用的委托方法
void SetStateChangedDelegate(OnToolBoxStateChanged OnTBStateChange)
  • 此方法设置在工具箱状态更改时调用的委托方法。 例如,请参阅演示应用程序中的状态标签。

 

工具箱的状态可以是以下之一

  1. ToolBox.States.Compressed = 1
  2. ToolBox.States.Compressing = 2
  3. ToolBox.States.Extended = 3
  4. 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
  • 这获取/设置用于工具箱左侧的图像。

将工具箱添加到您的应用程序

这非常简单。 只需执行以下操作

  1. 添加 ToolBoxLib.dll 的引用。
  2. 在应用程序的开头添加以下代码行
  3. using ToolBoxLib
  4. 声明一个 ToolBox 类型的变量。
  5. 在构造函数中,在 InitializeComponent(); 之后,设置 Toolbox 的参数。

这是一个例子。

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();
© . All rights reserved.