面板重新喷漆
我的问题是面板中有一个面板。 在里面我将 AutoScroll
属性设置为 true。 当我打开一个新窗口时,该面板会滚动到开始处。
我这样做,我在打开新窗口之前保存位置,并在关闭它后设置它。 它有效,但它跳到开头,然后回到我的位置。
My problem is that I have a panel in panel. Inside i have the AutoScroll
property set to true. When I open a new window this panel is scrolled to begining.
I do that, I save the position before open new window, and I set it after close it. It works but it jumps to the beginning and then back to my position.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
AutoScrollPosition 属性有点有趣。 当您读取它时,它将返回当前的滚动偏移量,但是当您分配它时,您将需要反转这些值:
现在您可以检索当前位置并像这样设置它:
The AutoScrollPosition property is a bit funny. When you read it, it will return the current scroll offset, but when you assign it you will need to invert the values:
Now you can retrieve the current position and set it like so:
您是否尝试过将
autoscroll
设置为false
?Have you tried setting
autoscroll
tofalse
?我做了类似你写的
_scrollPozition = -(pnlMain.AutoScrollPosition.Y); 的 事情
DialogResult 结果 = MessageBox.Show("删除:", MessageBoxButtons.YesNo);
dgvClendar.Focus();
私有无效 pnlMain_Paint(对象发送者,PaintEventArgs e)
{
在油漆上它是固定的,但如果你看的话,一切都会移动一会儿。 我需要阻止此滚动开始,或阻止绘画,并在滚动到当前位置后重新绘画。
I do something lik You wrote
_scrollPozition = -(pnlMain.AutoScrollPosition.Y);
DialogResult result = MessageBox.Show("Delete: ", MessageBoxButtons.YesNo);
dgvClendar.Focus();
private void pnlMain_Paint(object sender, PaintEventArgs e)
{
on paint it is set, but if you look everything is moved for a moment. I need to block this scroll to begin, or block painting, and repaint after scroll to current position.