C#使用Controls.Add()方法添加控件,控件坐标与设定不符,求高手解答,在线等,非常感谢!代码如下: 5
ctrl.Location=newSystem.Drawing.Point(100,143);Console.WriteLine("添加前x坐标:"+ctrl.Locat...
ctrl.Location = new System.Drawing.Point(100, 143);
Console.WriteLine("添加前x坐标:" + ctrl.Location.X);
Console.WriteLine("添加前y坐标:" + ctrl.Location.Y);
container.Controls.Add(ctrl);//将新建控件添加到窗体,并显示
Console.WriteLine("添加后x坐标:" + ctrl.Location.X);
Console.WriteLine("添加后y坐标:" + ctrl.Location.Y);
输出:
添加前x坐标:100
添加前y坐标:143
添加后x坐标:117
添加后y坐标:155 展开
Console.WriteLine("添加前x坐标:" + ctrl.Location.X);
Console.WriteLine("添加前y坐标:" + ctrl.Location.Y);
container.Controls.Add(ctrl);//将新建控件添加到窗体,并显示
Console.WriteLine("添加后x坐标:" + ctrl.Location.X);
Console.WriteLine("添加后y坐标:" + ctrl.Location.Y);
输出:
添加前x坐标:100
添加前y坐标:143
添加后x坐标:117
添加后y坐标:155 展开
6个回答
展开全部
昨天刚遇到这个问题。你是不是用到UserControl自定义控件了。我使用的自定义控件,出现了你说的情况:解决方法是,删除 .resx 、designer.cs 这2个文件。修改public partial class FormAttributeSetting 为 public class FormAttributeSetting。删除partial 修饰符。这样的话,就不会加载资源了,就不会出现如上问题。
或者重新设计你的UseControl控件,出现如上问题很大程度上是加载资源导致的。
或者重新设计你的UseControl控件,出现如上问题很大程度上是加载资源导致的。
展开全部
如果你的窗体有padding 或者用了layout引擎,都会修改坐标的
更多追问追答
追问
谢谢 但是去掉所有layout依然存在上述问题
追答
那就是窗体自己会layout控件,这个你管不着的,除非你自己做一个Control放到外面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也遇到这个问题。原来的 ctrl.Location是根据窗体的位置来定位,但是加了Controls.Add后,就根据你现在写的container的大小位置来定位了。好坑爹啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为窗体边框的宽度由主题确定的,所以将控件添加到窗体上,必然有一定的偏差。也有可能是容器的设置把控件位置更改了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将container.Controls.Add(ctrl);放在
ctrl.Location = new System.Drawing.Point(100, 143);之前
ctrl.Location = new System.Drawing.Point(100, 143);之前
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询