日期:2014-05-18  浏览次数:20715 次

很奇怪的现象!!!!!!!!!!!!!!!!!!!.net之BUG????
动态创建控件,设置容器的,当添加的动态控件超过容器显示范围后去滚动容器的滚动条,你继续动态添加控件,这个时候你发现有时候你添加的动态控件添加到不应该出现的位置了!!!它开始变“疯”,添加到后面些的地方!真不知道是不是.net的BUG!

测试代码:
(先设置容器的AutoScroll=true)


this.AutoScroll   =   true;

                void   createButton()
                {


                        Button   bt   =   new   Button   ();
                        bt.Size   =   new   Size(40,   50);
                        bt.Name   =   "bt "   +   (this.Controls.Count   +   1);
                        bt.Left   =   (40   *   this.Controls.Count);
                        bt.Top   =   33;
                        this.Controls.Add(bt);


                }


      private   void   button1_Click(object   sender,   EventArgs   e)
                {

                        createButton();
                }

多创建些Button然后等出现滚动条了再继续添加,这个时候问题就出来了!!!



------解决方案--------------------
.Net滚动条是纯直接动态绘制出来的——用API都获得不了位置信息,也没有位置属性,在程序中,经常会发现你的滚动条位置不对,尤其以Datagridview最为常见的。

个人认为:这是Bug,呵呵,拖动过程中位置显示不对,当然是Bug,程序代码可是没有控制它,呵呵~~

==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
优惠接单开发,组件控件定制开发,成品源代码批发
联系方式:Q64180940 全天在线
==================================================================
------解决方案--------------------
既然是Bug,问题就不是你我能够解决的了——微软推出了.Net的Sp,你可以考虑安装一下,我没有安装过,不知道是否有效果。

==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
优惠接单开发,组件控件定制开发,成品源代码批发
联系方式:Q64180940 全天在线
==================================================================