dotbar2使用技巧

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1----------------------------------------------------- DotNetBar的SuperTooltip控件使用技巧

DotNetBar是一个顶尖的.net第三方表示层空间。作出来的窗口可以说是非常非常非常的cool!SuperTooltip控件主要可以用于实现提示框。在它提供的sample 中,实现了树视图中,鼠标移动到树节点上时显示的提示框。

我的一个项目中用到了树视图,在项目完成以后我决定把它用DotNetBar美化一下。在参考着sample的代码对我的代码进行修改和调试的过程中,我发现sample 的代码并不是拿来用就行了的,还是需要理解以后进行修改。

按照sample的代码,假设我们的Form Form1中有控件TreeView treeView1,那么为treeView1实现提示框的方法如下:(我没用窗口编辑器,只修改代码来着)

1在项目的引用中添加DevComponents.DotNetBar。新建一个类NodeSuperTooltipProvider,将sample中的这个类的代码复制过来。注意,如果你的程序里的树节点不是用的.net自带组件TreeNode,而是从TreeNode继承而来的自定义类型,那么将以下所有代码中的TreeNode都改成你自定义的类型,并且很多地方也要加入强制类型转换。

using System;

using ponentModel;

using System.Drawing;

using System.Windows.Forms;

namespace SuperTooltip

{

///

/// Wrapper so SuperTooltips can be displayed for node objects.

///

public class NodeSuperTooltipProvider : Component,

DevComponents.DotNetBar.ISuperTooltipInfoProvider

{

private TreeNode m_Node=null;

///

/// Creates new instance of the object.

///

/// Node to provide tooltip information for

public NodeSuperTooltipProvider(TreeNode node)

{

m_Node=node;

}

///

/// Call this method to show tooltip for given node.

///

public void Show()

{

if(this.DisplayTooltip!=null)

DisplayTooltip(this,new EventArgs());

}

///

/// Call this method to hide tooltip for given node.

///

public void Hide()

{

if(this.HideTooltip!=null)

this.HideTooltip(this,new EventArgs());

}

#region ISuperTooltipInfoProvider Members

///

/// Returns screen coordinates of object.

///

public System.Drawing.Rectangle ComponentRectangle

{

get

{

Rectangle r=m_Node.Bounds;

r.Location=m_Node.TreeView.PointToScreen(r.Location);

return r;

}

}

public event EventHandler DisplayTooltip;

public event EventHandler HideTooltip;

#endregion

}

}

2在Form1种添加控件:

private DevComponents.DotNetBar.SuperTooltip superTooltip1;

private System.Windows.Forms.Timer tooltipDisplayDelay;

一个是SuperTooltip,另一个是.net本身带的Timer,用于控制提示框显示的时间。

3 Form1中的InitializeComponent()函数中添加:

ponents = new ponentModel.Container();

this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); this.tooltipDisplayDelay = new

System.Windows.Forms.Timer(ponents);

需要初始化components是因为那个Timer初始化的时候要用。不过去掉可以不可以我也没试过……

//

// superTooltip1

//

this.superTooltip1.DefaultFont = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular,

System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));

//

// tooltipDisplayDelay

//

this.tooltipDisplayDelay.Interval = 1000;

4写一个生成所有节点的提示框的函数:

private superTooltip_Refresh()

{

// Load SuperTooltip information for each node...

TreeNode node=treeView1.Nodes[0];

while(node!=null)

{

// Creates wrapper to provide SuperTooltip control access to the node object

NodeSuperTooltipProvider sp=new NodeSuperTooltipProvider(node);

node.Tag=sp;

相关文档
最新文档