winforms 带有RadPageView的鼠标事件

qncylg1j  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(166)

当我使用Telerik UI for WinForms构建应用程序时,RadPageView在捕捉鼠标事件时出现问题。
我只是想在页面视图中捕捉某个页面的鼠标悬停事件。在这种情况下,我想在指针下显示页面标题的内容。
例如,我有一个名为“页面”的页面视图,它有2个页面是“A”和“B”。我想显示这些页面的内容时,指针指向他们。
请给予我一个解决这个问题的方法。谢谢,对不起我的英语不好。

pnwntuvh

pnwntuvh1#

给你:

private void RadPageView1_MouseMove(object sender, MouseEventArgs e)
    {
        RadPageViewItem hoveredItem = radPageView1.ElementTree.GetElementAtPoint(e.Location) as RadPageViewItem;
        if (hoveredItem != null)
        {
            radPageView1.SelectedPage = hoveredItem.Page;
        }
    }
x9ybnkn6

x9ybnkn62#

对我来说,e.location在某些情况下表现不正常(如果我们以某种方式移动光标,多个页面会被悬停)。
我使用了以下逻辑(使用每个项目的isMouseOver属性),它工作得很完美:

private void RadPageView1_MouseMove(object sender, MouseEventArgs e) {
    foreach (RadPageViewPage pageView in radPageView1.Pages) {

        if (!pageView.Item.IsMouseOver) {
            //your logic for hovered pages
        } else {
            //your logic (if any) for non-hovered pages
        }
        
    }
}

相关问题