gpt4 book ai didi

c# - 控件未同时绘制

转载 作者:太空狗 更新时间:2023-10-29 23:46:32 24 4
gpt4 key购买 nike

我有一个使用 ShowDialog 调出的表单,其中包含几个文本框、标签和一个按钮。我遇到的问题是文本框是在表单本身和其他控件被绘制之前绘制的。

我正在覆盖 OnPaint 方法我不确定这是否会导致问题:

protected override void OnPaint(PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, Color.Black, ButtonBorderStyle.Solid);
base.OnPaint(e);
}

这只是轻微的延迟,但很明显且令人讨厌。谢谢。

顺便说一句,表单是双缓冲的。

编辑: 我已将问题确定为表单没有 FormBorderStyle。当 FormBorderStyle 设置为 Sizable 时,不会出现此问题。但是请注意,必须使用 FormBorderStyle.None 作为我的边框样式,所以我还没有找到解决方案。

最佳答案

尝试将此添加到对话框表单中:

    protected override CreateParams CreateParams
{
get
{
// Activate double buffering at the form level. All child controls will be double buffered as well.

CreateParams cp = base.CreateParams;

cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED

return cp;
}
}

关于c# - 控件未同时绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16384548/

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