Foxtable(狐表)用户栏目专家坐堂 → [求助]定制窗口宽高


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

主题:[求助]定制窗口宽高

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


加好友 发短信
等级:七尾狐 帖子:1765 积分:11811 威望:0 精华:0 注册:2015/6/22 8:11:00
[求助]定制窗口宽高  发帖心情 Post By:2019/10/20 9:55:00 [只看该作者]

老师,添加下面代码后报错


e.Form.baseform.width= 1300   '窗口宽
e.Form.baseform.height= 600  '窗口高



.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.4.22.1
错误所在事件:窗口,系统,SizeChanged
详细错误信息:
未将对象引用设置到对象的实例。


这是窗口,系统,SizeChanged


Dim spc1 As WinForm.SplitContainer = e.Form.Controls("SplitContainer1")
Dim btn As WinForm.Button = e.Form.Controls("隐藏分区")
If spc1.Panel1.Collapsed = True Then
    btn.Left = spc1.Left + spc1.SplitterDistance - 5
Else
    btn.Left  = spc1.Left + spc1.SplitterDistance
End If


[此贴子已经被作者于2019/10/20 10:02:34编辑过]

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/20 21:55:00 [只看该作者]

代码添加到哪里?窗口是什么类型?模式?停靠?

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


加好友 发短信
等级:七尾狐 帖子:1765 积分:11811 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2019/10/20 23:01:00 [只看该作者]

老师,是独立窗口的AfterLoad事件。

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/21 9:12:00 [只看该作者]

SizeChanged事件

if e.form.width = 0 orelse e.form.height= 0  then return
Dim spc1 As WinForm.SplitContainer = e.Form.Controls("SplitContainer1")
……其它代码

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


加好友 发短信
等级:七尾狐 帖子:1765 积分:11811 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2019/10/21 10:06:00 [只看该作者]

老师,没有用。


If e.form.width = 0 OrElse e.form.height= 0  Then Return
Dim spc1 As WinForm.SplitContainer = e.Form.Controls("SplitContainer1")
Dim btn As WinForm.Button = e.Form.Controls("隐藏分区")
If spc1.Panel1.Collapsed = True Then
    btn.Left = spc1.Left + spc1.SplitterDistance - 5
Else
    btn.Left  = spc1.Left + spc1.SplitterDistance
End If

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/21 10:18:00 [只看该作者]

请上传实例测试

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


加好友 发短信
等级:七尾狐 帖子:1765 积分:11811 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2019/10/21 12:29:00 [只看该作者]

老师,系统窗口定制窗口大小后报错

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table
 

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/21 14:08:00 [只看该作者]

Dim sp As WinForm.SplitContainer = e.Form.Controls("SplitContainer1")

'Dim txt1 As WinForm.Panel
Dim ycfq As WinForm.Button
ycfq = e.Form.CreateControl("隐藏分区", ControlTypeEnum.Button)
ycfq.Top = 400                                                                           '按钮停靠上下位置
ycfq.text = ">"
ycfq.Height=50                                                                          '按钮高度
'ycfq.VisualStyle=IVisualStyle.System
'ycfq.BackColor = Color.Green
ycfq.VisualStyle = VisualStyleEnum.office2010blue

'txt1.TopMost = True'当多个控件的位置重叠时,将此属性设为True,可以确保控件处于最顶端,不会被其他控件遮挡.

sp.TopMost = False
e.form.AddControl(ycfq)
e.form.Controls("隐藏分区").basecontrol.BringToFront '置前
e.Form.Controls("隐藏分区").Width = 5                                                    '按钮宽度
e.Form.Controls("隐藏分区").Left = sp.SplitterDistance + sp.Left

sp.Dock = 5
'sp.SplitterDistance = sp.width /4.1
sp.SplitterDistance = sp.Width * 0.2
sp.BorderStyle = BorderStyle.Fixed3D
'生成一个面板固定在分区面板"Panel2"中
Dim txt As WinForm.Panel
txt = e.Form.CreateControl("Panel2", ControlTypeEnum.Panel)
txt.Height=120                                                                                                   '控件高度
txt.BackColor =  Color.SlateGray
txt.Dock = 1
e.Form.Controls("SplitContainer1") .Panel2.AddControl(txt)
'------------------------------------------------------------------------------------------------
Dim tp As WinForm.PictureBox
tp = e.Form.CreateControl("PictureBox1", ControlTypeEnum.PictureBox)
tp.SizeMode = ImageSizeMode.StretchImage                                                                                                '控件高度
tp.Dock = 5
tp.Image =getImage("H:\蓝峰\Attachments\图片\1002.jpg")
e.Form.Controls("Panel2").AddControl(tp)
'-------------------------------------------------------------------------------------------------------------

'Dim cls() As color = {color.Tan,color.Azure,color.LavenderBlush,color.Azure,color.PaleVioletRed,color.LightSkyBlue,color.MediumSlateBlue}      '面板颜色的设置
For i As Integer = 1 To 6                                                                                                                       '动态生成面板的个数
    txt = e.Form.CreateControl("系统面板" & i, ControlTypeEnum.Panel)                                                                           '动态生成的面板名称
    'e.Form.Controls("ListBox1").items.add(txt.name)                                                                                            '把面板名称赋值给ListBox1控件
    txt.Dock = 5
    'txt.BackColor =  Color.SlateGray                                                                                                           '设置面板的统一颜色
    'txt.BorderStyle = BorderStyle.Fixed3D
    'txt.backcolor = cls(i)                                                                                                                      '把颜色赋值给5个面板
    e.Form.Controls("SplitContainer1") .Panel2.AddControl(txt)
Next

e.Form.baseform.width= 1300   '窗口宽
e.Form.baseform.height= 600  '窗口高

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


加好友 发短信
等级:七尾狐 帖子:1765 积分:11811 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2019/10/21 17:51:00 [只看该作者]

谢谢老师

 回到顶部