ListBoxControl 子项默认是没有鼠标提示支持的
需通过以下几个步骤进行添加
1.在工具箱找到并加一个 ToolTipController (toolTipController1)
2.listBoxControl的 ToolTipController 选中刚刚添加的这个toolTipController1
3.添加 toolTipController1的GetActiveObjectInfo事件(当鼠标移到listbox就会触发这个事件)
private void toolTipController1_GetActiveObjectInfo(object sender, ToolTipControllerGetActiveObjectInfoEventArgs e)
{
//根据鼠标位置获取它下面的 子项下标
var index = this.listBoxControl1.IndexFromPoint(e.ControlMousePosition);
//获取子项数据源(绑定模式)
var entity = this.listBoxControl1.GetItem(index) as MyItemClass;
if (entity != null)
{
e.Info = new ToolTipControlInfo(entity, "我是tooltip");
}
}
4.完整代码
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
var list = new List<MyItemClass>();
for (int i = 0; i < 10; i++)
{
list.Add(new MyItemClass("tooltip" + i, "我要显示tooltip" + i));
}
listBoxControl1.DisplayMember = "Text";
listBoxControl1.DataSource = list;
}
private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e)
{
//根据鼠标位置获取它下面的 子项下标
var index = this.listBoxControl1.IndexFromPoint(e.ControlMousePosition);
//获取子项数据源(绑定模式)
var entity = this.listBoxControl1.GetItem(index) as MyItemClass;
if (entity != null)
{
e.Info = new ToolTipControlInfo(entity, entity.Tooltip);
}
}
class MyItemClass
{
public MyItemClass(string text, string tooltip)
{
Text = text;
Tooltip = tooltip;
}
public string Text { get; set; }
public string Tooltip { get; set; }
}