Foxtable(狐表)用户栏目专家坐堂 → 动态生成控件的锚定停靠设置


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

主题:动态生成控件的锚定停靠设置

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
动态生成控件的锚定停靠设置  发帖心情 Post By:2019/9/30 9:47:00 [显示全部帖子]

老师,这哪儿不对?

 需要效果:


图片点击可在新窗口打开查看此主题相关图片如下:需要效果.png
图片点击可在新窗口打开查看

 

实际效果:

图片点击可在新窗口打开查看此主题相关图片如下:实际效果.png
图片点击可在新窗口打开查看

 

代码如下:

 

Dim rad1 As WinForm.RadioButton
rad1 = e.Form.CreateControl("RadioButton1",ControlTypeEnum.RadioButton)
rad1.Text = "大图标"
rad1.SetBounds(7,376,80,25)
rad1.Dock= 2 '锚定
e.Form.Controls("TabControl1").Tabpages(0).AddControl(rad1)

Dim rad2 As WinForm.RadioButton
rad2 = e.Form.CreateControl("RadioButton2",ControlTypeEnum.RadioButton)
rad2.Text = "小图标"
rad2.SetBounds(87,376,80,25)
rad2.Dock= 2 '锚定
e.Form.Controls("TabControl1").Tabpages(0).AddControl(rad2)

Dim rad3 As WinForm.RadioButton
rad3 = e.Form.CreateControl("RadioButton3",ControlTypeEnum.RadioButton)
rad3.Text = "平铺"
rad3.SetBounds(167,376,80,25)
rad3.Dock= 2 '锚定
e.Form.Controls("TabControl1").Tabpages(0).AddControl(rad3)

Dim rad4 As WinForm.RadioButton
rad4 = e.Form.CreateControl("RadioButton4",ControlTypeEnum.RadioButton)
rad4.Text = "列表"
rad4.SetBounds(247,376,80,25)
rad4.Dock= 2 '锚定
e.Form.Controls("TabControl1").Tabpages(0).AddControl(rad4)



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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/9/30 10:19:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20190930101812.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/9/30 11:28:00 [显示全部帖子]

老师,用代码都不行呢?生成的lvw控件,有上、下、左、右拉伸,麻烦看看。

    Dim lvw0 As WinForm.ListView
    lvw0  = e.Form.CreateControl("ListView1",ControlTypeEnum.ListView)
    lvw0.SetBounds(0,0,704,368)
    'lvw0.Dock= System.Windows.Forms.DockStyle.top '停靠
    lvw0.Anchor = system.Windows.Forms.AnchorStyles.Top Or system.Windows.Forms.AnchorStyles.Bottom Or system.Windows.Forms.AnchorStyles.Left Or system.Windows.Forms.AnchorStyles.Right '锚定
    e.Form.Controls("TabControl1").Tabpages(0).AddControl(lvw0)

    Dim rad1 As WinForm.RadioButton
    rad1 = e.Form.CreateControl("RadioButton1",ControlTypeEnum.RadioButton)
    rad1.Text = "大图标"
    rad1.SetBounds(7,376,80,25)
    rad1.Dock= System.Windows.Forms.DockStyle.bottom '停靠
    rad1.Anchor = system.Windows.Forms.AnchorStyles.Left Or system.Windows.Forms.AnchorStyles.Bottom '锚定
    e.Form.Controls("TabControl1").Tabpages(0).AddControl(rad1)

    Dim rad2 As WinForm.RadioButton
    rad2 = e.Form.CreateControl("RadioButton2",ControlTypeEnum.RadioButton)
    rad2.Text = "小图标"
    rad2.SetBounds(87,376,80,25)
    rad2.Dock= System.Windows.Forms.DockStyle.bottom '停靠
    rad2.Anchor = system.Windows.Forms.AnchorStyles.Left Or system.Windows.Forms.AnchorStyles.Bottom  '锚定
    e.Form.Controls("TabControl1").Tabpages(0).AddControl(rad2)

    Dim rad3 As WinForm.RadioButton
    rad3 = e.Form.CreateControl("RadioButton3",ControlTypeEnum.RadioButton)
    rad3.Text = "平铺"
    rad3.SetBounds(167,376,80,25)
    rad3.Dock= System.Windows.Forms.DockStyle.bottom '停靠
    rad3.Anchor = system.Windows.Forms.AnchorStyles.Left Or system.Windows.Forms.AnchorStyles.Bottom '锚定
    e.Form.Controls("TabControl1").Tabpages(0).AddControl(rad3)

    Dim rad4 As WinForm.RadioButton
    rad4 = e.Form.CreateControl("RadioButton4",ControlTypeEnum.RadioButton)
    rad4.Text = "列表"
    rad4.SetBounds(247,376,80,25)
    rad4.Dock= System.Windows.Forms.DockStyle.bottom '停靠
    rad4.Anchor = system.Windows.Forms.AnchorStyles.Left Or system.Windows.Forms.AnchorStyles.Bottom '锚定
    e.Form.Controls("TabControl1").Tabpages(0).AddControl(rad4)

[此贴子已经被作者于2019/9/30 11:29:26编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/9/30 11:40:00 [显示全部帖子]

去掉也不对。

 



以下内容是专门发给有点蓝浏览


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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/10/23 11:33:00 [显示全部帖子]

老师,麻烦看看我动态添加的lvw控件,需要在ListView控件中的RowActivate事件中写以下代码,应该写到哪儿?

Dim r As DataRow  = e.Sender.Current.tag
Dim dr As DataRow = DataTables("用户管理").Find("',' + 菜单可用集合 + ',' like '%," & r("编号") & ",%' and 账号='" & _username & "'")
If dr IsNot Nothing Then
    Functions.remove("函数")
    Dim Code As String
    Code = e.sender.current.tag("代码")
    Functions.Add("函数",Code)
    Functions.Complie()
    Functions.Execute("函数")

    '页签
    Vars("yq") = 1
    Dim t As C1Command.C1DockingTab = Forms("主窗口").Controls("TabControl1").BaseControl
    t.CanCloseTabs = True
    t.CloseBox = 2
    AddHandler t.TabPageClosing, AddressOf _TabPageClosing
Else
    MessageBox.Show("你没有使用权限,请联系管理员!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

机构:重庆分公司,用户名:chongqing 密码:123456


以下内容是专门发给有点蓝浏览

[此贴子已经被作者于2019/10/23 11:33:04编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/10/23 12:58:00 [显示全部帖子]

麻烦老师看看是不是这样,

全局代码:

'lvw事件代码
Public Sub ListView1_RowActivate(sender As Object, e As EventArgs)
'Dim r As DataRow  = e.Sender.Current.tag
Dim r As DataRow  = Forms("主窗口").Controls("ListView1 ").Current.tag
Dim dr As DataRow = DataTables("用户管理").Find("',' + 菜单可用集合 + ',' like '%," & r("编号") & ",%' and 账号='" & _username & "'")
If dr IsNot Nothing Then
    Functions.remove("函数")
    Dim Code As String
    'Code = e.sender.current.tag("代码")
    Code =  Forms("主窗口").Controls("ListView1").current.tag("代码")
    Functions.Add("函数",Code)
    Functions.Complie()
    Functions.Execute("函数")
    '页签
    Vars("yq") = 1
    Dim t As C1Command.C1DockingTab = Forms("主窗口").Controls("TabControl1").BaseControl
    t.CanCloseTabs = True
    t.CloseBox = 2
    AddHandler t.TabPageClosing, AddressOf _TabPageClosing
Else
    MessageBox.Show("你没有使用权限,请联系管理员!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
End Sub

 

窗口的afterload绑定事件:代码如下保存:

AddHandler e.Form.Controls("ListView1").basecontrol.RowActivate, AddressOf ListView1_RowActivate

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20191023125643.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/10/23 12:58:12编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/10/23 14:33:00 [显示全部帖子]

老师,我动态生成的ListView,代码直接放到窗口的Afterload,提示找不到ListView1,放到页面的SelectedIndexChanged事件,点击列表项目提也是一样的问题,怎么修改?


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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/10/23 14:52:00 [显示全部帖子]

是这样,报错如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20191023145013.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20191023145020.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20191023145059.png
图片点击可在新窗口打开查看

全局代码:

'lvw事件代码
Public Sub ListView1_RowActivate(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim r As DataRow  = Forms("主窗口").Controls("ListView1 ").Current.tag
Dim dr As DataRow = DataTables("用户管理").Find("',' + 菜单可用集合 + ',' like '%," & r("编号") & ",%' and 账号='" & _username & "'")
If dr IsNot Nothing Then
    Functions.remove("函数")
    Dim Code As String
    Code =  Forms("主窗口").Controls("ListView1").current.tag("代码")
    Functions.Add("函数",Code)
    Functions.Complie()
    Functions.Execute("函数")
    '页签
    Vars("yq") = 1
    Dim t As C1Command.C1DockingTab = Forms("主窗口").Controls("TabControl1").BaseControl
    t.CanCloseTabs = True
    t.CloseBox = 2
    AddHandler t.TabPageClosing, AddressOf _TabPageClosing
Else
    MessageBox.Show("你没有使用权限,请联系管理员!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
End Sub

[此贴子已经被作者于2019/10/23 14:53:22编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/10/23 15:13:00 [显示全部帖子]

谢谢老师,我开始的代码是没问题的,我把bin删除重新打开就对了,bin害死人。

 回到顶部