快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

澳门黄金城官网网:扩展ToolBarManager、ListView和Grid控件以实现气球式的ToolTip



infragistics是举世领先的UI对象和用户体验的专家,Infragistics开拓了一系列的炫目的Windows、澳门黄金城官网网Web、WPF和Silverlight控件,信托很多人在应用它们。我们现在的项目就在应用Infragistics的Windows Form控件集。虽然这些控件功能强大年夜,也弗成能满意你所有的需求,尤其是那些对照苛刻的终极用户的需求。比如,我们近来就接管到这样一个掉常的需求:让以是菜单项、对象栏按钮、网格单元的ToolTip以气球式的样式显示。终极,我不得不经由过程对现有控件的扩展实现这个要求。

一、扩展UltraGrid

首先先容对UltraGrid的扩展,先来看看显示的效果:当鼠标移到到每一个单元格(或者列头)的时刻,会呈现如下一个气球式的ToolTip,其翰墨的内容为单元格中的文本。ToolTip的样式,包括背景、字体等均可以经由过程Infragistics控件本身支持的风格文件定义。

下面是扩展控件ExtendedUltraGrid的定义,逻辑对照简单:直接承袭自UltraGrid,重写两个措施:OnMouseEnterElement和OnMouseLeaveElement。当鼠标移入和移出响应元素的时刻,这两个措施会被调用。经由过程重写 OnMouseEnterElement措施,手工创建UltraToolTipInfo工具,并经由过程UltraToolTipManager工具(UltraToolTipManager在工具构建的时刻被初始化)以ToolTip的形式显示出来;手工创建的ToolTip在 OnMouseLeaveElement被履行的时刻被移除。此外,因为UltraGrid的单元格和列头本身具有自己的ToolTip,你必要经由过程 DisplayLayout.Override.TipStyleCell和 DisplayLayout.Override.TipStyleHeader这两个属性抑制它们的显示。

1: using Infragistics.Win;

2: using Infragistics.Win.UltraWinGrid;

3: using Infragistics.Win.UltraWinToolTip;

4:

5: namespace Artech.ExtendedControls4ToolTip

6: {

7:

8:public class ExtendedUltraGrid : UltraGrid{

9:

10:private UltraToolTipManager toolTipManager = new UltraToolTipManager();

11:protected override void OnPaint(System.Windows.Forms.PaintEventArgs pe)

12:{

13:base.OnPaint(pe);

14:this.DisplayLayout.Override.TipStyleCell = TipStyle.Hide;

15:this.DisplayLayout.Overrid澳门黄金城官网网e.TipStyleHeader = TipStyle.Hide;

16:}

17:

18:protected override void OnMouseEnterElement(UIElementEventArgs e)

19:{

20:UltraGridCell enteredCell = e.Element.GetContext(typeof(UltraGridCell)) as UltraGridCell;

21:if (enteredCell != null)

22:{

23:if (enteredCell.Column.DataType == typeof(bool))

24:{

25:return;

26:}

27:

28:UltraToolTipInfo gridToolTip = new UltraToolTipInfo(enteredCell.Text, ToolTipImage.Default, null, DefaultableBoolean.Default);

29:this.toolTipManager.SetUltraToolTip(this, gridToolTip);

30:this.toolTipManager.ShowToolTip(this);

31:return;

32:}

33:

34:ColumnHeader en澳门黄金城官网网teredHeader = e.Element.GetContext(typeof(ColumnHeader)) as ColumnHeader;

35:if (enteredHeader != null)

36:{

37:enteredHeader.ToolTipText = string.Empty;

38:澳门黄金城官网网UltraToolTipInfo gridToolTip = new UltraToolTipInfo(enteredHeader.Caption, ToolTipImage.Default, null, DefaultableBoolean.Default);

39:this.toolTipManager.SetUltraToolTip(this, gridToolTip);

40:this.toolTipManager.ShowToolTip(this);

41:}

42:}

43:

44:protected override void OnMouseLeaveElement(UIElementEventArgs e)澳门黄金城官网网

45:{

46:base.OnMouseLeaveElement(e);

47:UltraGridCell enteredCell = e.Element.GetContext(typeof(UltraGridCell)) as UltraGridCell;

48:ColumnHeader enteredHeader = e.Element.GetContext(typeof(ColumnHeader)) as ColumnHeader;

49:if (null != enteredCell || null != enteredHeader)

50:{

51:this.toolTipManager.HideToolTip();

52:}

53:}

54:}

55: }

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: