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