【问题标题】:Reorder tabs in TabControl without flickerng在不闪烁的情况下重新排序 TabControl 中的选项卡
【发布时间】:2010-12-17 15:15:06
【问题描述】:

互联网上有多个经过修改的 TabControl 示例,它们允许用户使用拖放重新排列选项卡。但是,似乎所有人都使用以下技术:

  • 确定正在拖动哪个选项卡
  • 确定标签被拖动到的索引
  • 清空标签页集合并添加新订单

然而,最后一步会导致控件闪烁很多。除此之外,当标签控件上有很多标签页时,它会比较慢。

是否可以在 TabPageCollection 中交换项目(即交换索引),而不会使 TabControl 闪烁?

【问题讨论】:

    标签: .net vb.net user-interface


    【解决方案1】:

    首先,你不应该清空标签页集合,只需将你正在拖动的标签移除并插入到下一个位置。

    其次,当您删除和插入标签页时,您可以使用一点互操作暂停 TabControl 的绘制,如the answer here 中所述,方法是在删除标签页之前调用您的标签控件上的 SuspendDrawing 并在插入后调用 ResumeDrawing新位置的标签页。这应该会产生无闪烁的标签重新排序。

    【讨论】:

    • 成功了,非常感谢。也很抱歉,因为答案在 StackOverflow 本身上搜索不够好。
    猜你喜欢
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2022-07-30
    相关资源
    最近更新 更多