2013-05-09 61 views
-1

我使用netzero硬件来管理多个监视器的内容。我现在的解决方案在VB.Net中创建了一个窗体,它有一个像素偏移量,对应于我在控制面板中将显示器放置在显示器管理中的位置。每个监视器都有一个专用的表单,每个表单中都有各种对象。通过代码而不是设计模式创建VB.Net表单

烦恼是每个表单都必须在设计时单独创建(据我所知)。我无法制作一组表格,加上一组偏移量并通过代码分配所有属性。

应该有办法做到这一点...这将简化我的编码和项目管理。

我在MSDN上看到的是要么在我的头上,要么没有帮助。

回答

0

这在代码中很简单。你想要制作同样形式的许多实例。在这种情况下,我已经创建了名为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的值,但你可以从这样做一个数据库或配置文件很容易。

This is how it displays

+0

I f有类似的答案,但还没有在硬件上测试过。你的代码的问题是你失去了单独的表单。我现在得到的代码是: – Dave123 2013-05-09 11:09:00

1

我没有在硬件上测试过这个还没有,但它确实编译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)表之间的差异=新形式 对于我目前对类,命名空间等的理解来说太简单了。

1

那么,我不得不放弃这种方法,并回到在设计时创建n个表格(这意味着他们有form2 ... form22的名称,把他们中的每个人放在设计的手动起始位置模式,似乎没有办法用一组形式来做到这一点,所以我构建的代码是围绕着form2的混乱形成的... forms22工作得很好,只是维护和精心制作而已

解决方案可能在于system.screen类,但是这方面的文档对我来说太高级了,除了提取关于有多少个屏幕的数据之外,我没有找到好的代码示例 - 没有关于写给他们的信息

相关问题