بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله و بركاته
هذا الموضوع خصيصا للاداتين
CheckedListBox With ListBox
لاول مرة اتعامل مع هذه الاداة ولاحظت كم كنت غافلا عنها(CheckedListBox ) بحيث تيسر عليك الكم الهائل من الاكواد للاسناد.(أقصد توفر الوقت والجهد لوضع عدة ادوات checkbox)
PHP كود :
Public Class Form1
Private Sub gd(Optional ByVal index As Integer = 0)
ListBox1.DataSource = Nothing
ListBox1.Items.Clear()
c.Items.Clear()
con = New OleDb.OleDbConnection(str)
da = New OleDb.OleDbDataAdapter("select * from tb", con)
cm = New OleDb.OleDbCommandBuilder(da)
dt = New DataTable
da.Fill(dt)
Me.ListBox1.DataSource = dt
Me.ListBox1.DisplayMember = "tname"
Dim i As Integer
For i = 2 To dt.Columns.Count - 1
Me.c.Items.Add(dt.Columns(i).ColumnName.ToString)
Next
BindingContext(dt).Position = index
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
gd()
End Sub
Private Sub ListBox1_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseClick
If dt.Rows.Count = 0 Then Exit Sub
If ListBox1.Items.Count = 0 Then Exit Sub
If e.Button = Windows.Forms.MouseButtons.Left Then
btnedit.Enabled = True
End If
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
If dt.Rows.Count = 0 Then Exit Sub
If ListBox1.Items.Count = 0 Then Exit Sub
If ListBox1.SelectedIndex < 0 Then Exit Sub
Dim index As Integer = ListBox1.SelectedIndex
c.Enabled = True
For i = 2 To dt.Columns.Count - 1
c.SetItemChecked((i - 2), dt.Rows(index).Item(i))
Next
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles btnedit.Click
Dim index As Integer = ListBox1.SelectedIndex
Dim row As DataRow = dt.Rows(index)
row.BeginEdit()
row(2) = c.GetItemChecked(0)
row(3) = c.GetItemChecked(1)
row(4) = c.GetItemChecked(2)
row(5) = c.GetItemChecked(3)
row.EndEdit()
da.Update(dt)
gd(index)
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles btnadd.Click
Dim frm2 As New FrmAddPerson
frm2.c.Items.Clear()
For Each h As String In Me.c.Items
frm2.c.Items.Add(h)
Next
frm2.ShowDialog()
frm2.Dispose()
gd()
End Sub
Private Sub btndel_Click(sender As System.Object, e As System.EventArgs) Handles btndel.Click
If dt.Rows.Count = 0 Then Exit Sub
If ListBox1.Items.Count = 0 Then Exit Sub
If ListBox1.SelectedIndex < 0 Then Exit Sub
Dim index As Integer = ListBox1.SelectedIndex
dt.Rows(index).Delete()
da.Update(dt)
gd()
End Sub
End Class
Public Class FrmAddPerson
Private Sub btnclose_Click(sender As System.Object, e As System.EventArgs) Handles btnclose.Click
Me.Close()
End Sub
Private Sub btnsave_Click(sender As System.Object, e As System.EventArgs) Handles btnsave.Click
If IsFound(TextBox1.Text) = False Then
Dim row As DataRow = dt.NewRow
row(1) = TextBox1.Text
row(2) = c.GetItemChecked(0)
row(3) = c.GetItemChecked(1)
row(4) = c.GetItemChecked(2)
row(5) = c.GetItemChecked(3)
dt.Rows.Add(row)
da.Update(dt)
btnclose.PerformClick()
Else
MsgBox("الاسم محجوز", MsgBoxStyle.Exclamation, "")
End If
End Sub
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
c.Enabled = TextBox1.Text.Trim.Length
End Sub
End Class
المثال مرفق
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير

