Foxtable(狐表)用户栏目专家坐堂 → 探讨:控件锚定的想法


  共有19828人关注过本帖树形打印复制链接

主题:探讨:控件锚定的想法

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
探讨:控件锚定的想法  发帖心情 Post By:2009/5/16 14:30:00 [只看该作者]

控件锚定的问题,我看了一下这个问题,我感觉,只有锚定了四边,"那么窗口大小改变时,控件将同时调整高度和宽度,以便和窗口四个边界的距离保持不变"
但是默认的是"锚定于其容器的左上角,这意味着窗口大小改变时,控件并不会随之移动或改变大小"
我的想法:
1.如果只有要锚定四边,才能保持不变,那为何不能将默认改成:锚定四边呢?
2.控件的锚定是在一个一个的设置锚定,为何不能批量设置呢?
请贺老师考虑一下,是否可以改改?

 回到顶部
帅哥哟,离线,有人找我吗?
八婺
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:252 积分:1355 威望:0 精华:0 注册:2009/4/5 13:06:00
  发帖心情 Post By:2009/5/16 15:09:00 [只看该作者]

默认锚定四边肯定不行的,因为要锚定四边的控件在实际使用中毕竟是少数。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/16 15:16:00 [只看该作者]

我认为锚定四边的不在少数啊,呵呵
第二个问题能批量锚定如能实现也不错啊

[此贴子已经被作者于2009-5-16 15:47:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/5/16 17:37:00 [只看该作者]

以下是引用yangming在2009-5-16 15:16:00的发言:

我认为锚定四边的不在少数啊,呵呵
第二个问题能批量锚定如能实现也不错啊

[此贴子已经被作者于2009-5-16 15:47:15编辑过]

    第一个问题不同意您的看法.窗口中需要锚定四边的控件主要包括Table,DataList,页面集合等,一般是容器类或者列表类的控件,这类控件在窗口中的数目很少.但大部分的控件,例如标签类/输入框类/按钮类等,数目众多,这些都是不需要锚定四边的,要不然,把按钮和输入框都锚定四边,就麻烦了.
   至于能批量锚定,这是个好的建议.以前我建议过,不仅仅是锚定,窗口控件的很多属性都不能批量设定,也再次向贺老师建议能够对控件的更多属性提供批量设置功能!


 回到顶部
美女呀,离线,留言给我吧!
yangming
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/16 18:50:00 [只看该作者]

以下是引用cpayinyuan在2009-5-16 17:37:00的发言:

    第一个问题不同意您的看法.窗口中需要锚定四边的控件主要包括Table,DataList,页面集合等,一般是容器类或者列表类的控件,这类控件在窗口中的数目很少.但大部分的控件,例如标签类/输入框类/按钮类等,数目众多,这些都是不需要锚定四边的,要不然,把按钮和输入框都锚定四边,就麻烦了.
   至于能批量锚定,这是个好的建议.以前我建议过,不仅仅是锚定,窗口控件的很多属性都不能批量设定,也再次向贺老师建议能够对控件的更多属性提供批量设置功能!

那我是理解错了?我以为所有的按件都要锚定四边呢,呵呵
另外,动态生成的Table如何锚定?

我一个主窗口,一个窗口上下放二个动态生成的Table,这种动态生成的Table又如何锚定呢?

[此贴子已经被作者于2009-5-16 18:52:08编辑过]

 回到顶部
美女呀,离线,留言给我吧!
shxiaoya
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1442 威望:0 精华:2 注册:2008/9/7 21:30:00
  发帖心情 Post By:2009/5/16 21:15:00 [只看该作者]

以下是引用yangming在2009-5-16 18:50:00的发言:

那我是理解错了?我以为所有的按件都要锚定四边呢,呵呵
另外,动态生成的Table如何锚定?

我一个主窗口,一个窗口上下放二个动态生成的Table,这种动态生成的Table又如何锚定呢?

[此贴子已经被作者于2009-5-16 18:52:08编辑过]

将table控件锚定就行了


 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/16 22:18:00 [只看该作者]

动态生成的Table,请问如何锚定?

 回到顶部
帅哥哟,离线,有人找我吗?
八婺
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:252 积分:1355 威望:0 精华:0 注册:2009/4/5 13:06:00
  发帖心情 Post By:2009/5/17 0:29:00 [只看该作者]

现在估计只能用SetBounds固定位置,没办法锚定自适应窗口的。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/18 8:01:00 [只看该作者]

以下是引用八婺在2009-5-17 0:29:00的发言:
现在估计只能用SetBounds固定位置,没办法锚定自适应窗口的。


可以的,例如锚定右下角:

 

Dim t As WinForm.Table
t = e.Form.CreateControl(
"表A", ControlTypeEnum.Table)
t.Anchor = Windows.Forms.AnchorStyles.Right
Or Windows.Forms.AnchorStyles.Bottom
e.Form.AddControl(t)


说明:

 Bottom 该控件锚定到其容器的下边缘。 
 Left 该控件锚定到其容器的左边缘。 
 None 该控件未锚定到其容器的任何边缘。 
 Right 该控件锚定到其容器的右边缘。 
 Top 该控件锚定到其容器的上边缘。


帮助没有介绍,因为很少有人需要修改锚定属性的。

[此贴子已经被作者于2009-5-18 8:01:55编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/18 9:04:00 [只看该作者]

因为我是一个窗口上下动态生成二个Table,所以我想,用你说的方法固定不好办,
我的做法是下面的代码:试了一下,各种分辨率都还可以.
Dim t As WinForm.Table
t = Forms("导航1").CreateControl("员工档案", ControlTypeEnum.Table)
t.SetBounds(215,50,e.Form.Width-230,e.Form.Height*0.45)
Forms("导航1").AddControl(t)
Dim t1 As WinForm.Table
t1 = Forms("导航1").CreateControl("调出人员表", ControlTypeEnum.Table)
t1.SetBounds(215,e.Form.Height*0.45+90,e.Form.Width-230,e.Form.Height*0.35)
Forms("导航1").AddControl(t1)
[此贴子已经被作者于2009-5-18 9:05:08编辑过]

 回到顶部