1、treeView高度调整后焦点会自动上移   treeView放在一个autoScroll=true的panel里,由于特殊原因所以不允许使用treeView本身的滚动条 所以在点击按钮后我都自动算出当前节点展开后treeView的新实际高度并改变treeView的Height属性。   但问题也同时出现,如果一开始treeView的高度就大于panel的高度而且已经滚动到treeView的下半部分,这时改变treeView的Height值后 panel的滚动条会自动上滚至treeView的开头,请问要怎样避免这种现象的发生?
2、为了界面的美观 使用FormBorderStyle.None类型的窗体作为主窗体,并自己绘制标题栏等控件。但子窗体最大化之后就出现了问题... 子窗口的标题栏跳到了主窗体的最上檐,看起来像是主窗体的最大最小化按钮很容易被人点错,请问要怎样重绘或重定位最大化后的子窗体状态栏?

解决方案 »

  1.   

    第一个问题:
      你可以通过设置AutoScrollPosition 属性来调整滚动框的位置;第二个问题:
      你可以通过设置主窗体的Padding属性来调整其子控件所在边缘,例如:
    this.Padding = new Padding(5, 20, 5, 5);
      

  2.   

    AutoScrollPosition 值确实能体现treeView在height变化前后位置的变化 但无法对其进行赋值 一赋值就变成{0,0}了 可能是panel的dock是fill造成的吧请问还有什么方法么?
      

  3.   

    还有我用的是VS2003 winform好像没有 this.Padding 这个属性.......
      

  4.   

    Padding 确实是2.0新增的。也正说明在1.0是个缺陷,在2.0补过了。
    建议使用最新版的。NET