通过代码而不是设计模式创建VB.Net表单
我使用netzero硬件来管理多个监视器的内容。我现在的解决方案在VB.Net中创建了一个窗体,它有一个像素偏移量,对应于我在控制面板中将显示器放置在显示器管理中的位置。每个监视器都有一个专用的表单,每个表单中都有各种对象。通过代码而不是设计模式创建VB.Net表单
烦恼是每个表单都必须在设计时单独创建(据我所知)。我无法制作一组表格,加上一组偏移量并通过代码分配所有属性。
应该有办法做到这一点...这将简化我的编码和项目管理。
我在MSDN上看到的是要么在我的头上,要么没有帮助。
这在代码中很简单。你想要制作同样形式的许多实例。在这种情况下,我已经创建了名为frmTest设计一种形式,我在代码中创建许多情况下,所谓的frmNew:
Public Sub Main()
For x = 100 To 400 Step 100
For y = 100 To 700 Step 200
Dim frmNew As New frmTest
frmNew.Show()
frmNew.Top = x
frmNew.Left = y
frmNew.Height = 100
frmNew.Width = 200
Next
Next
End Sub
我刚才用了两个循环增加x和y的值,但你可以从这样做一个数据库或配置文件很容易。
我没有在硬件上测试过这个还没有,但它确实编译W/O错误:
Public Sub makeform()
Dim MonitorForm(21) As Form
Dim MPictureBoxes(21) As PictureBox
Dim a As Integer
For i As Integer = 0 To n 'up to 21
MonitorForm(i) = New Form
MonitorForm(i).Name = "Form" & (i + 1)
MonitorForm(i).Text = "Form" & (i + 1)
MonitorForm(i).Controls.Add(MPictureBoxes(i))
MonitorForm(i).Location= new Point (x(i), y(i))
With MPictureBoxes(i)
.Name = "Picture Box " & Convert.ToString(i)
.Image = Image.FromFile(CurrentPic(i))
.Location = New System.Drawing.Point(0, 0)
.Size = New Size(1920, 1080)
' Note you can set more of the PicBox's Properties here
End With
Next
End Sub
我哪里出了毛病,我在这个尝试是试图做到这一点这样
昏暗的监视器(21)作为新形式
这并不工作,其次是显示器(我)昏暗的监视器(21)表之间的差异=新形式 对于我目前对类,命名空间等的理解来说太简单了。
。
那么,我不得不放弃这种方法,并回到在设计时创建n个表格(这意味着他们有form2 ... form22的名称,把他们中的每个人放在设计的手动起始位置模式,似乎没有办法用一组形式来做到这一点,所以我构建的代码是围绕着form2的混乱形成的... forms22工作得很好,只是维护和精心制作而已
解决方案可能在于system.screen类,但是这方面的文档对我来说太高级了,除了提取关于有多少个屏幕的数据之外,我没有找到好的代码示例 - 没有关于写给他们的信息
I f有类似的答案,但还没有在硬件上测试过。你的代码的问题是你失去了单独的表单。我现在得到的代码是: – Dave123 2013-05-09 11:09:00