C#-WinForms锚控件更改位置来源?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-WinForms锚控件更改位置来源?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1500字,纯文字阅读大概需要3分钟。
内容图文
![C#-WinForms锚控件更改位置来源?](/upload/InfoBanner/zyjiaocheng/674/b3e41c4609354b5f9a21a5ad48d6a085.jpg)
我一直将我的C#/ .NET 2.0项目移植到Mono上,以便在其他平台上使用,但这似乎在NATIVE WinForms实现中提出了一个问题.
我已将问题隔离到控件(特别是Button)的Anchor属性和Location属性的Y组件之间的关系.当AnchorStyle属性设置为Top时,Location属性的原点是表单的ClientArea(标题栏除外).将锚点更改为底部,但是将原点更改为整个窗口(包括标题栏)的左上角.
这是一个小的Form类,说明了区别:
public class RawCodeForm : Form
{
public RawCodeForm()
{
Button b = new Button();
b.Text = "Test";
b.Location = new Point( 10, 10 );
b.Size = new Size( 75, 23 );
b.Anchor = AnchorStyles.Left | AnchorStyles.Top;
//b.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
this.Controls.Add( b );
this.Size = new Size( 100, 200 );
this.Location = new Point( 100, 100 );
this.Show();
}
}
尝试交换b.Anchor行以查看更改的位置.
这是一个已记录的错误,还是我缺少另一个需要设置的属性?
编辑:感谢您指出表格以Size(300,300)开始.我以为直到设置为(0,0).
在上面的简单测试表单之外,现在的问题似乎是稍后更改FormBorderStyle导致表单调整大小.我的猜测是,在Mono(或主机操作系统)下,更改后的FormBorderStyle会将ClientArea的大小调整为较小,这是因为ClientSize区域在本机WinForms中保持相同的大小.
解决方法:
这是因为您在添加按钮后更改了表单的大小.之前更改
this.Size = new Size(100, 200);
this.Location = new Point(100, 100);
Button b = new Button();
b.Text = "Test";
b.Location = new Point(10, 10);
b.Size = new Size(75, 23);
//b.Anchor = AnchorStyles.Left | AnchorStyles.Top;
b.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
this.Controls.Add(b);
this.Show();
当锚定到底部时,按钮仅跟随下边框的变化.
内容总结
以上是互联网集市为您收集整理的C#-WinForms锚控件更改位置来源?全部内容,希望文章能够帮你解决C#-WinForms锚控件更改位置来源?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。