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


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

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

帅哥哟,离线,有人找我吗?
有点色
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


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

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

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


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

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

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 18:25:00 [显示全部帖子]

回复10。

 

e.sender.basecontrol.tag = "true" 这个是为了用tag属性来记录一些信息,比如5楼的代码,就是为了你第一次点勾选,再点去掉勾选的意思。

 

如果用动态添加控件的方式,就比较好控制,不需要重新绘制,叠加起来和方便。效率自然会低一些。

 

如果用绘制的方法,你可以在图片的那个区域,绘制一个和背景颜色一样的图形来掩盖原来的东西。


 回到顶部