单独启用VB .NET 2008中面板中包含的PictureBox

时间:2011-09-24 14:36:53

标签: .net vb.net winforms picturebox

请耐心等待,因为英语是我的第二语言。这是:

我的问题是:我目前有一个包含12个面板的WinForm。我已经将这12个面板编程为4,6或12组,具体取决于客户选择的支付月数。 表单格式的第二部分是如果客户已经支付了该月的付款,则禁用面板内的PictureBox。此PictureBox具有与click事件相关联的行为,并用于支付该月的付款。 对于这种格式,我有这个代码:

Private Sub disableIFPayed()
    For i = 0 To pContract.pPaymentPlan.pPayments.Count - 1
        Dim str As String
        str = "pbPayment" & i + 1
        For Each ctrl As Control In Me.Controls
            If TypeOf (ctrl) Is Panel Then
                Dim stri As String = ctrl.Controls.Item(1).Name
                If stri = str Then
                    If pContract.pPaymentPlan.pPayments(i).pPayedFor = True Then
                        ctrl.Controls.Item(str).Enabled = False
                    Else
                        ctrl.Controls.Item(str).Enabled = True
                    End If
                End If

            End If
        Next
    Next

End Sub

其中pPayedFor是一个布尔属性,表示该月和该合约是否有付款。 合同由paymentPlan组成,其中包含listOf(Payment)。

我遇到的问题是,每当一个PicutreBox更改为enabled = false时,每个其他一个也会被禁用。

我以前遇到过这个问题,但是我通过构建它的每个项目来解决它们并在它被定位到它的位置之后销毁它。现在我看不到如何控制Control集合的创建,所以我找不到让它工作的方法。

无论什么不清楚,我都非常乐意澄清,这是我的第一个问题,我可能低估了社区,或者完全不清楚。提前致谢,我期待着您的回复。

0 个答案:

没有答案