当前位置:编程学习 > C#/ASP.NET >>

ctrl.Left = 666666666;有时候能设置成66666666,有时候变成32767,为什么?

ctrl.Left = 666666666;有时候能设置成66666666,有时候变成32767,为什么? --------------------编程问答-------------------- 难道是c#根据ctrl当时的情况,才改变输入的left值???? --------------------编程问答--------------------
 这问题蛋疼!! --------------------编程问答-------------------- 32767...这不是那个传说中的上限么... --------------------编程问答-------------------- left 默认是32位int类型,int的上限是
-2,147,483,648 to 2,147,483,647
16位的int才是32767吧
  --------------------编程问答-------------------- 刚查了一下
http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SYSTEM.WINDOWS.FORMS.CONTROL.LEFT);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true
确实是32位int啊,奇怪的问题,Lz是不是把他赋给16位的int了? --------------------编程问答-------------------- 刚测了一下,果然是有问题
            int i= 6666666;

            button2.Left = i;

            MessageBox.Show(button2.Left.ToString());
看不到内部代码,难道left属性默认转换时用的是16位int? --------------------编程问答-------------------- 经测试

Left 的可用范围是 -32768~32767
Right 的可用范围是 -32768~98302
Width 的可用范围是 0~65535

足够用的了 --------------------编程问答-------------------- 建议楼主打开msdn,看看Int16结构 --------------------编程问答-------------------- .Left=666666666;之后,.Left不会马上被改变

比如当从即使变量里查看这个属性的时候,就会变成32767。

--------------------编程问答-------------------- LZ代码不全,看到后面才知道原来是控件的属性
这些在设计的时候考虑到实际情况,完全够用的了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,