以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 【求助】窗体动态按钮如何同时设置图标与其按钮执行的代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146512) |
||||
-- 作者:chen_sheng -- 发布时间: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
[此贴子已经被作者于2020/2/25 14:41:26编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/2/25 14:53:00 -- bt.Image = getimage(dr("图标")) bt.ImageAlign = ContentAlignment.MiddleLeft
|
||||
-- 作者:chen_sheng -- 发布时间:2020/2/25 15:17:00 -- 图标非常完美 现在就差动态生成是一起生成 其按钮执行的Click 事件代码 详细代码见下图
[此贴子已经被作者于2020/2/25 15:18:20编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/2/25 15:42:00 -- 到全局事件处理http://www.foxtable.com/webhelp/topics/1920.htm 单元格的代码要动态编译:http://www.foxtable.com/webhelp/topics/1487.htm
|
||||
-- 作者:chen_sheng -- 发布时间: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编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间: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(n ) Functions.Add(n ,Code) Functions.Complie() Functions.Execute(n) else msgbox(“没有代码”) end if |
||||
-- 作者:chen_sheng -- 发布时间:2020/2/25 21:10:00 -- 感谢蓝版的指导 顺便也 上传一下 分享给需要的朋友们,尽量少麻烦版主们 完美实现功能 就是按钮的执行单击事件的效率比较低(延迟稍微久了点) 求能否优化一下的指导
[此贴子已经被作者于2020/2/25 21:10:58编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/2/25 21:49:00 -- 动态的函数编译效率肯定低一点,没有可优化的余地了。灵活和性能一向都难以调和 |