Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms F#中的双缓冲:如何处理闪烁?_Winforms_F# - Fatal编程技术网

Winforms F#中的双缓冲:如何处理闪烁?

Winforms F#中的双缓冲:如何处理闪烁?,winforms,f#,Winforms,F#,我正在尝试在F#中实现双缓冲。我遇到的所有例子都是C 让r=form.DisplayRectangle let buffer=新位图(r.宽度,r.高度) 表格.DrawToBitmap(缓冲区,r) form.BackgroundImageDo form.DoubleBuffered问题:双缓冲区未显示,编译器说它是一个私有变量…System.Windows.Forms.FormaDoubleBuffered属性…通常最容易在Form上创建一个薄包装并在constructor@JoelMuel

我正在尝试在F#中实现双缓冲。我遇到的所有例子都是C

让r=form.DisplayRectangle
let buffer=新位图(r.宽度,r.高度)
表格.DrawToBitmap(缓冲区,r)
form.BackgroundImageDo


form.DoubleBuffered问题:双缓冲区未显示,编译器说它是一个私有变量…
System.Windows.Forms.Form
a
DoubleBuffered
属性…通常最容易在
Form
上创建一个薄包装并在constructor@JoelMueller-propertyy受保护,因此您只能从继承的类访问它-有关详细信息,请参阅我的其他注释这是最简单的解决办法。我想我从来没有注意到,因为在C#WinForms工作中,您创建的每个表单都是从
表单
继承的。您似乎提交了许多编辑,这些编辑显著地改变了问题的含义。请注意,这对那些已经回答了问题的人是不公平的;有些人可能会来投票,因为他们似乎没有回答你的问题。
    let r = form.DisplayRectangle
    let buffer = new Bitmap(r.Width,r.Height)
    form.DrawToBitmap(buffer,r)
    form.BackgroundImage <-buffer
    form.Invalidate()  
form.DoubleBuffered <- true