Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
C# 如何阻止面板擦除矩形I';当我向下滚动时,你画了什么?_C#_.net_Winforms_Draw - Fatal编程技术网

C# 如何阻止面板擦除矩形I';当我向下滚动时,你画了什么?

C# 如何阻止面板擦除矩形I';当我向下滚动时,你画了什么?,c#,.net,winforms,draw,C#,.net,Winforms,Draw,我正在用C#为.net框架编写一个图表控件。我基本上有一个拆分面板,在其中一边写名字,另一边画矩形,作为控件的实际图形部分。然而,我意识到,每次向下滚动时,它都会删除面板视图外的矩形部分。我如何防止这种情况 附带问题,如何使第二个面板的滚动条对这两个面板都起作用。我对其中的一些内容还比较陌生,所以如果这里有任何内容比较简单或者已经回答了,我向您道歉。谢谢你的时间 有趣的是,关于滚动的问题的答案实际上可以解决绘图问题。解决方案是添加第三个面板,并将AutoScroll设置为true。然后将现有的两

我正在用C#为.net框架编写一个图表控件。我基本上有一个拆分面板,在其中一边写名字,另一边画矩形,作为控件的实际图形部分。然而,我意识到,每次向下滚动时,它都会删除面板视图外的矩形部分。我如何防止这种情况


附带问题,如何使第二个面板的滚动条对这两个面板都起作用。我对其中的一些内容还比较陌生,所以如果这里有任何内容比较简单或者已经回答了,我向您道歉。谢谢你的时间

有趣的是,关于滚动的问题的答案实际上可以解决绘图问题。解决方案是添加第三个面板,并将
AutoScroll
设置为true。然后将现有的两个面板放在该面板内。不要停靠它们,而是将它们设置为全尺寸。父面板的滚动条将滚动两者,并指示它们根据需要重新绘制

另见。最好从面板中派生出自己的类并利用它

为了便于将来参考,当您直接在
AutoScroll
面板上绘图时,请使用
TranslateTransform
来说明滚动。这为我解决了绘图问题:

private void Panel1_Paint(object sender, PaintEventArgs e) {
    e.Graphics.TranslateTransform(panel1.AutoScrollPosition.X, panel1.AutoScrollPosition.Y);

    // draw something...
}

你不应该画出你视野之外的东西。如果我误解了你,你就必须表明你的问题。我并不是在试图脱离你的视线。我在面板上画图,然后向下滚动,这样就看不到矩形了。问题是,当回滚时,图形会消失,显示的是图形代码!当我们看不到你实际上在做什么时,我们如何帮助你??(我希望您使用的是Paint事件,而不是CreateGraphics!?)