最近做ui的时候用到了c#里面的autoscroll的功能。发现这个功能虽然好用。但是在有时候却已经帮我们做了太多的东西。当我们不满意他的做法的时候,让没有办法去使之按照自己的想法去执行。
现在的这个问题主要发生在在autoscroll为true的时候。当控件Focusd的时候scrollbar会很讨厌地跳到focused的那个control的位置.找遍了中文的资料都没有。具体的现象在一个老外的blog里面有说明:按照这个老外的说法可以解决一些问题。但是当切换窗口的时候问题依然存在(按老外的例子先让richtextbox得到焦点然后滚动垂直滚动条到底端。切换到别的程序窗口再切换回来)这个时候又产生了讨厌的自动跳到richtextbox顶端的现象
还有一个办法是在msdn的讨论组里找到的(链接)。具体的思路是把control的属性Selectable设置为false不过这样控件将不能获得焦点。而且必须要重载pannel里面的全部的控件(SetStyle是protected的).
这两个办法只能部分解决问题。但是不能完全解决。。也不知道有没有更好的办法