以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助]定制窗口宽高 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=142168) |
||||
-- 作者:江南小镇 -- 发布时间: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编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/10/20 21:55:00 -- 代码添加到哪里?窗口是什么类型?模式?停靠? |
||||
-- 作者:江南小镇 -- 发布时间:2019/10/20 23:01:00 -- 老师,是独立窗口的AfterLoad事件。 |
||||
-- 作者:有点蓝 -- 发布时间: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") ……其它代码
|
||||
-- 作者:江南小镇 -- 发布时间: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
|
||||
-- 作者:有点蓝 -- 发布时间:2019/10/21 10:18:00 -- 请上传实例测试 |
||||
-- 作者:江南小镇 -- 发布时间:2019/10/21 12:29:00 -- 老师,系统窗口定制窗口大小后报错
|
||||
-- 作者:有点蓝 -- 发布时间: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 \'窗口高
|
||||
-- 作者:江南小镇 -- 发布时间:2019/10/21 17:51:00 -- 谢谢老师 |