【发布时间】:2015-05-06 20:23:09
【问题描述】:
我正在尝试绘制拖动拆分器控件时出现的拆分线:
从这张图片可以看出,默认的分割器是棋盘格。
...这不起作用:
public partial class MockForm : Form
{
public MockForm()
{
InitializeComponent();
this.splitter1.Paint += splitter1_Paint;
}
private void splitter1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.Clear(Color.Red);
}
}
这只是绘制控件的背景,而不是在拖动时绘制拆分器。
有什么想法吗?
【问题讨论】:
-
不幸的是,系统在拖动拆分器时不会生成任何绘画消息。绘图是在内部完成的。它就像滚动条控件。你无能为力。不过我可能是错的,并且有一些我不知道的黑客行为。
-
检查this。
-
我知道这是一个老问题,LarsTech 发布的答案非常好,但是处理程序闪烁有点烦人。如果您将
Form显示为拆分器处理程序并将其显示在拆分器容器上方,而不是在Form中显示控件,则闪烁将消失。 -
还要查看支持透明处理程序的自定义拆分器,请查看this related post。在另一篇文章中,我使用原始拆分器的源代码创建了一个新的拆分器控件,但更改了高亮显示:Change Splitter Highlighting/Resize Line