-1

我正在使用 netzero 硬件来管理多个监视器的内容。我目前的解决方案在 VB.Net 中创建了一个表单,该表单的像素偏移量与我在控制面板的显示管理中放置监视器的位置相对应。每个监视器都有一个专用的窗体,每个窗体中都有各种对象。

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

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

我在 MSDN 上看到的内容要么超出我的想象,要么没有帮助。

4

3 回答 3

1

好吧,我不得不放弃这种方法并回到设计时创建 n 个表单(这意味着它们的名称为 form2...form22,将它们中的每一个都放在设计模式下的手动开始位置。只有似乎不是使用表单数组执行此操作的方法。因此,我围绕 forms2 的混乱构建的代码...forms22 工作得很好,只是维护和详细说明会很混乱。

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

于 2013-05-11T21:09:23.463 回答
1

我还没有在硬件中测试过这个,但它编译时没有错误:

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)作为新形式

这不起作用,Dim Monitor(21) as Form 后跟 monitor(i)= new Form 之间的区别对于我目前对类、命名空间等的理解来说太微妙了。

.

于 2013-05-09T11:24:00.843 回答
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 值,但是您可以很容易地从数据库或配置文件中执行此操作。

这是它的显示方式

于 2013-05-09T01:17:42.043 回答