Foxtable(狐表)用户栏目专家坐堂 → 【求助】窗体动态按钮如何同时设置图标与其按钮执行的代码


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

主题:【求助】窗体动态按钮如何同时设置图标与其按钮执行的代码

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


加好友 发短信
等级:三尾狐 帖子:691 积分:6079 威望:0 精华:0 注册:2018/5/10 9:05:00
【求助】窗体动态按钮如何同时设置图标与其按钮执行的代码  发帖心情 Post By:2020/2/25 14:36:00 [只看该作者]

窗体动态按钮如何同时设置图标与其按钮执行的代码

Dim czy As String = User.Name
Dim cmd As New SQLCommand
cmd.CommandText = "S elect 工具栏名,可用,图标,代码 From {权限} Where 账号 = '" & czy & "'"

Dim dt As DataTable = cmd.ExecuteReader()
Dim idx As Integer = 0
For Each dr As DataRow In dt.DataRows
    Dim bt As WinForm.Button
    bt = e.Form.CreateControl(dr("工具栏名"), ControlTypeEnum.Button)
    bt.Left = 3 + idx*80
    bt.Top = 3
    'bt.Image = dr("图标")
    bt.Width = 80
    bt.Enabled = dr("可用")
    bt.Height = 45
    bt.text = dr("工具栏名")
    e.Form.Controls("TabControl1").Tabpages(0).AddControl(bt)
    idx = idx +1
Next


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:动态按钮.zip




[此贴子已经被作者于2020/2/25 14:41:26编辑过]

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/25 14:53:00 [只看该作者]

bt.Image = getimage(dr("图标"))
bt.ImageAlign = ContentAlignment.MiddleLeft

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


加好友 发短信
等级:三尾狐 帖子:691 积分:6079 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2020/2/25 15:17:00 [只看该作者]

图标非常完美   现在就差动态生成是一起生成  按钮执行的Click 事件代码

详细代码见下图

图片点击可在新窗口打开查看此主题相关图片如下:动态设置代码.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2020/2/25 15:18:20编辑过]

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/25 15:42:00 [只看该作者]


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


加好友 发短信
等级:三尾狐 帖子:691 积分:6079 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2020/2/25 16:19:00 [只看该作者]

静态代码参考帮助完美执行  想用表内事件实现动态执行  求指导一下  谢谢!

'S elect Case e.Sender.Name
    'Case "新增"
        'MessageBox.Show("新增")
    'Case "修改"
       'MessageBox.Show("修改")
    'Case "删除"
       'MessageBox.Show("删除")
    'Case "审核"
        'MessageBox.Show("审核")
'End S elect

想实现动态获取对应按钮的代码  困扰很久了 求代码指导一下   谢谢!

S elect Case e.Sender.Name
        Dim czy As String = User.Name
        Dim cmd As New SQLCommand
        cmd.CommandText = "S elect 工具栏名,代码 From {权限} Where 账号 = '" & czy & "'"
        Dim dt As DataTable = cmd.ExecuteReader()
        For Each dr As DataRow In dt.DataRows
        Case dr("工具栏名")
            dr("代码")
        Next
End S elect


或者老师可以提供一下相应的案例我这参考一下也行
[此贴子已经被作者于2020/2/25 16:37:00编辑过]

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/25 16:51:00 [只看该作者]

Dim cmd As New SQLCommand
cmd.CommandText = "Select 代码 From {权限} Where 账号 = '" & czy & "' and 工具栏名='" & e.Sender.Name & "' and 可用=true"
Dim code As String = cmd.ExecuteScalar
if code > "" then
dim n as string = e.form.name & e.Sender.Name 
Functions.remove()
Functions.Add(,Code)
Functions.Complie()
Functions.Execute(n)
else
msgbox(“没有代码”)
end if

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


加好友 发短信
等级:三尾狐 帖子:691 积分:6079 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2020/2/25 21:10:00 [只看该作者]

感谢蓝版的指导  顺便也 上传一下  分享给需要的朋友们,尽量少麻烦版主们 

完美实现功能  就是按钮的执行单击事件的效率比较低(延迟稍微久了点)  能否优化一下的指导

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:动态按钮.foxdb




[此贴子已经被作者于2020/2/25 21:10:58编辑过]

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/25 21:49:00 [只看该作者]

动态的函数编译效率肯定低一点,没有可优化的余地了。灵活和性能一向都难以调和

 回到顶部