Enabling/Disabling 使用数据库的表单

Enabling/Disabling Forms using Database

我想 Enable/Disable 使用数据库的按钮。
Account Types

由于按钮的账号种类很多Enabled/Disabled,所以通过代码控制这种activity需要的LOC(line of codes)太多
有什么简短的方法可以让我 Enable/Disable 按钮。

禁用当前表单上所有按钮的最短解决方案:

    For Each c As Control In Me.Controls
        If TypeOf c Is Button Then c.Enabled = False
    Next

暂无其他解决方案。让我用我以前用于此类活动的方法来解释我的问题,如果没有其他方法或解决方案,也许可以作为答案。

首先看看下面的图片(或在 Link)。
This is the Image.

  1. 这是用户使用 ID 和通行证登录的主要表单。所有用户都将具有用户帐户类型,例如管理员和用户等
  2. 现在一些用户(具有优先级)可以在需要时创建一种新的用户帐户类型并将其保存到数据库,以启用或禁用此类用户的活动,例如他想要一类用户不做删除。所以他禁用删除(Forms/Buttons/Tabs[这些是 back-end 进程。您使用的任何内容都将为此用户禁用。])
  3. 在表格 2 中,我正在禁用选项卡。
  4. 在表格 3 中,我禁用了按钮。

出于此类目的,我使用 类 并在加载到 Enable/Disable 时从 Main 调用它们。看看下面的代码。

Imports System.Data.SqlClient
Public Class User_Types
Dim con As SqlConnection = New SqlConnection("Data Source=.;Initial Catalog=Try;Integrated Security=True")
Dim cmd As SqlCommand
Dim dr As SqlDataReader
Dim a, b, c, d, e As Boolean

Public Sub UTypes()
    cmd = New SqlCommand("Select * from User_Account_Types where AT_Name = '" & Main.UsrAcnType & "'", con)
    If con.State = ConnectionState.Closed Then con.Open()
    If dr.Read() Then
        a = dr.Item("Val1")
        b = dr.Item("Val2")
        c = dr.Item("Val3")
        d = dr.Item("Val4")
        e = dr.Item("Val5")
    End If
    If a = True Then Form3.Btn_add.Enabled = False Else Form3.Btn_add.Enabled = True

    If b = True Then Form3.Btn_update.Enabled = False Else Form3.Btn_update.Enabled = True

    If c = True Then Form3.Btn_delete.Enabled = False Else Form3.Btn_delete.Enabled = True

    If d = True Then Form2.TC.TabPages(0).Enabled = False Else Form2.TC.TabPages(0).Enabled = True

    If e = True Then Form2.TC.TabPages(1).Enabled = False Else Form2.TC.TabPages(1).Enabled = True

End Sub
End Class  

这是旧方法,您可以看到需要大量编程。我需要简单的方法来处理这样的 activity。

希望这可能对很多新用户有所帮助,但我想应用一些简短而有趣的新内容。

这里看一下这个Gif Image就是输出,我直接展示了方法,没有涉及DB。如果要使用DB那么he/she可以使用上面的方法。
The Output.