Foxtable(狐表)用户栏目专家坐堂 → 如何标识已选定的控件


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

主题:如何标识已选定的控件

帅哥哟,离线,有人找我吗?
凡夫俗子
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:457 积分:3523 威望:0 精华:0 注册:2016/1/22 18:17:00
如何标识已选定的控件  发帖心情 Post By:2016/5/4 17:13:00 [只看该作者]

就是如何做像官方的功能一样

按CTRL 单击增加一个选择控件时,该控件周围出现 8 个 控件点,前面的都是空心的,后面一个是实心的

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/4 19:03:00 [只看该作者]

 麻烦,很麻烦,你还不如直接修改其背景颜色。

 

 如果要那样做,你就把控件放在一个容器里面,然后控制容器的样式。


 回到顶部
帅哥哟,离线,有人找我吗?
凡夫俗子
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:457 积分:3523 威望:0 精华:0 注册:2016/1/22 18:17:00
  发帖心情 Post By:2016/5/4 19:11:00 [只看该作者]

修改其背景颜色 复原也是个问题

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/4 19:35:00 [只看该作者]

以下是引用凡夫俗子在2016/5/4 19:11:00的发言:
修改其背景颜色 复原也是个问题

 

那你就最好把控件放在容器里,修改容器的样式。


 回到顶部
帅哥哟,离线,有人找我吗?
凡夫俗子
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:457 积分:3523 威望:0 精华:0 注册:2016/1/22 18:17:00
  发帖心情 Post By:2016/5/4 19:56:00 [只看该作者]

好吧背景色的问题 可以不管她

那么如果 有 
ctls(4) 总共有5个控件

ctls(0).top = 500
ctls(1).top = 200
ctls(2).top =300
ctls(3).top =100
ctls(4).top = 400

如何对这五个控件进行竖直等距 处理

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/4 20:11:00 [只看该作者]

取最大值,取最小值,相减500-100=400,然后400/(5-1)=100

 

然后设置 100, 100+100*1,100+100*2, 100+100*3,100+100*4


 回到顶部
帅哥哟,离线,有人找我吗?
凡夫俗子
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:457 积分:3523 威望:0 精华:0 注册:2016/1/22 18:17:00
  发帖心情 Post By:2016/5/4 20:17:00 [只看该作者]

这个谢谢
我想问题的关键点在于,先要对集合 内的控件 按对应的TOP值,进行排序,然后才能进行这个操作的吧

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/4 21:26:00 [只看该作者]

Dim ctls() As WinForm.Control = {e.Form.Controls("Button1"),e.Form.Controls("Button2"),e.Form.Controls("Button3"),e.Form.Controls("Button4"),e.Form.Controls("Button5")}
Dim i As Integer, j As Integer
For i = 0 To ctls.length - 1
    For j = i + 1 To ctls.length -1
        If ctls(i).top > ctls(j).top Then
            Dim temp = ctls(i)
            ctls(i) = ctls(j)
            ctls(j) = temp
        End If
    Next j
Next i
Dim c As Integer = (ctls(ctls.Length-1).top - ctls(0).top) / (ctls.length-1)
For i = 0 To ctls.length-1
    ctls(i).top = ctls(0).top + i * c
Next


 回到顶部