Foxtable(狐表)用户栏目专家坐堂 → 求助,动态添加的控件


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

主题:求助,动态添加的控件

帅哥哟,离线,有人找我吗?
晕了快扶我
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1199 积分:7132 威望:0 精华:0 注册:2013/3/4 18:02:00
求助,动态添加的控件  发帖心情 Post By:2017/1/11 15:32:00 [只看该作者]

 For Each pl As WinForm.Panel In e.Form.Controls
            Dim s As Graphics = pl.Graphics
            s.Clear(Color.White)
            pl.Repaint
 Next
错误提示:无法将类型为“Foxtable.WinForm.SplitContainer”的对象强制转换为类型“Foxtable.WinForm.Panel”。
求助:
1.SplitContainer是直接添加的,Panel是用动态添加的,我想枚举我动态添加的Panel要怎么写啊?
2.用GDI添加的图片,如果在需要的删除掉?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 15:35:00 [只看该作者]

 

For Each pl As object In e.Form.Controls
    If typeof pl Is winform.panel Then
        Dim s As Graphics = pl.Graphics
        s.Clear(Color.White)
        pl.Repaint
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1199 积分:7132 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2017/1/11 15:44:00 [只看该作者]

我把Demo传上来了,有点色老师指点一下吧,我主要的目的是点击的房有勾,没点的没勾
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:demo.zip


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


加好友 发短信
等级:五尾狐 帖子:1199 积分:7132 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2017/1/11 15:47:00 [只看该作者]

我只想去掉这个勾,不改变底色可以吗?
[此贴子已经被作者于2017/1/11 15:48:30编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 15:55:00 [只看该作者]

If e.Button =MouseButtons.Right '如果是右键
    If  left(e.Sender.name,9) = "bx_Panel_"
    End If
Else '如果是左键
    If  left(e.Sender.name,9) = "bx_Panel_"
        Dim ary() As String = e.Sender.name.split("_")
        If e.sender.basecontrol.tag = "true" Then
            Dim g As Graphics = e.sender.Graphics
            g.Clear(Color.White)
            Dim fnt As New Font("宋体",14,FontStyle.Bold)
            g.DrawString(ary(ary.Length-1),fnt,Brushes.Blue,40,1)
            e.sender.Repaint()
            e.sender.basecontrol.tag = "false"
        Else
            Dim g As Graphics = e.sender.Graphics
            g.DrawImage(getImage("(01,10).png"),10,10)
            e.sender.Repaint()
            e.sender.basecontrol.tag = "true"
        End If
    End If
End If

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


加好友 发短信
等级:五尾狐 帖子:1199 积分:7132 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2017/1/11 15:57:00 [只看该作者]

 还是不行,我是点击一个房图,其他勾就去掉啊,其他的勾还在

 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1199 积分:7132 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2017/1/11 15:59:00 [只看该作者]

 而且还有,这个依然会改变底色的啊,因为实际应用的过程中,房态比如在用,空,清洁,买单,等等这些是要用不同的颜色来表示的,去了底色肯定不行的

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 16:48:00 [只看该作者]

 无法撤销某一次的绘制,你必须重新把所有的都绘制一次,才行。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 16:49:00 [只看该作者]

结合2楼,结合5楼,根据你的需求修改你的代码。

 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1199 积分:7132 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2017/1/11 18:02:00 [只看该作者]

 如果用添加一个picbox控件的做法来做,遍历,然后移除,再在当前添加和GDI相比,哪个效率会高一些呢?

另外再请教一下:f e.sender.basecontrol.tag = "true"这句是什么意思?
[此贴子已经被作者于2017/1/11 18:05:00编辑过]

 回到顶部
总数 11 1 2 下一页