gpt4 book ai didi

c# - 在 C# winform 中绘图相当慢

转载 作者:行者123 更新时间:2023-11-30 21:08:05 25 4
gpt4 key购买 nike

我正在创建一个自定义 DataGridView,其中 CheckBox 在鼠标悬停时显示一个边框。

这是我到目前为止所做的。

    void checkBox_MouseLeave(object sender, EventArgs e)
{
//showBorder defines whether the border is drawn.
this.showBorder = false;
this.DataGridView.InvalidateCell(this);
}

void CheckBoxMouseHover(object sender, EventArgs e)
{
this.showBorder = true;
this.CheckBox.BringToFront();
this.DataGridView.InvalidateCell(this);
}

protected override void Paint(...........)
{
..........
if (showBorder)
{
GraphicsPath border=new GraphicsPath();
border.AddRectangle(new Rectangle(checkBoxPosition.X-1,checkBoxPosition.Y-1,checkBoxSize.Width+1,checkBoxSize.Height+1));
graphics.DrawPath(new Pen(borderColor,1),border);
}
}

但是速度太慢,我不得不等待大约半秒钟才能看到边框显示。无论如何,MouseLeave 工作正常。那么我怎样才能提高这里的性能呢?

另外,如何自定义checkbox?例如,背景颜色等。

最佳答案

您正在使用 MouseHover 事件让鼠标经过控件。请尝试使用 MouseEnter。 MouseHover 在鼠标停留在控件上一段时间后触发。 MouseEnter 是即时的

关于c# - 在 C# winform 中绘图相当慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9900001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com