المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [VB.NET] تغيير لون بعض Items فى Combobox بناء على اختيارات Combobox آخر


اشراق العالم
04-09-2020, 03:04 AM
<div>هذه هى واجهة البرنامج

https://www5.0zz0.com/2020/04/05/13/769597835.jpg

كل Combobox من الأربعة السفلى يعتمد على اختيار ما قبله
ما أريده هو أنه عندما يتم اخيار Available فى Combobox المسمى Status كما بالصورة

https://www5.0zz0.com/2020/04/05/13/182870544.jpg

يتغير لون items فى Combobox المسمى Name والتى يكون مسجلاً أمامها Yes
فى قاعدة البيانات فى خانة Available كما بالصورة

https://www7.0zz0.com/2020/04/05/13/118244816.jpg

وهذا هو كود البرنامج:
كود:
Imports System.Data.OleDb
Public Class Form1
* *Dim cnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0 ;Data Source=Stock.accdb")
* *Dim da As OleDbDataAdapter
* *Dim cm As OleDbCommandBuilder
* *Dim cmd As OleDbCommand
* *Dim itemRoute As String()
* *Private Sub ComboType_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboType.SelectedIndexChanged

* * * *ComboName.Items.Clear()
* * * *ComboQuantity.Items.Clear()
* * * *ComboStore.Items.Clear()

* * * *If ComboType.SelectedItem = "Food" Then

* * * * * *Dim dt1 As New DataTable
* * * * * *dt1.Clear()
* * * * * *Dim sql As String = "SELECT * FROM Food"
* * * * * *da = New OleDbDataAdapter(sql, cnn)
* * * * * *cm = New OleDbCommandBuilder(da)
* * * * * *da.Fill(dt1)
* * * * * *For ii As Integer = 0 To dt1.Rows.Count - 1
* * * * * * * *ComboName.Items.Add(dt1(ii)(0))
* * * * * *Next

* * * *End If

* * * *If ComboType.SelectedItem = "Clothes" Then

* * * * * *Dim dt1 As New DataTable
* * * * * *dt1.Clear()
* * * * * *Dim sql As String = "SELECT * FROM Clothes"
* * * * * *da = New OleDbDataAdapter(sql, cnn)
* * * * * *cm = New OleDbCommandBuilder(da)
* * * * * *da.Fill(dt1)
* * * * * *For ii As Integer = 0 To dt1.Rows.Count - 1
* * * * * * * *ComboName.Items.Add(dt1(ii)(0))
* * * * * *Next

* * * *End If
* *End Sub

* *Private Sub ComboName_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboName.SelectedIndexChanged

* * * *ComboQuantity.Items.Clear()
* * * *ComboStore.Items.Clear()

* * * *If ComboType.SelectedItem = ("Food") Then

* * * * * *Dim dt2 As New DataTable
* * * * * *dt2.Clear()
* * * * * *Dim sql2 As String = "SELECT * FROM Food WHERE Food = '" & ComboName.SelectedItem & "'"
* * * * * *da = New OleDbDataAdapter(sql2, cnn)
* * * * * *cm = New OleDbCommandBuilder(da)
* * * * * *da.Fill(dt2)
* * * * * *Dim quants As String = dt2(0)(1)
* * * * * *Dim quant As String() = quants.Split("-")
* * * * * *For ii As Integer = 0 To quant.Count - 1
* * * * * * * *ComboQuantity.Items.Add(quant(ii))
* * * * * *Next
* * * * * *Dim stores As String = dt2(0)(2)
* * * * * *Dim store As String() = stores.Split("-")
* * * * * *itemRoute = store

* * * *End If

* * * *If ComboType.SelectedItem = ("Clothes") Then

* * * * * *Dim dt2 As New DataTable
* * * * * *dt2.Clear()
* * * * * *Dim sql2 As String = "SELECT * FROM Clothes WHERE Clothes = '" & ComboName.SelectedItem & "'"
* * * * * *da = New OleDbDataAdapter(sql2, cnn)
* * * * * *cm = New OleDbCommandBuilder(da)
* * * * * *da.Fill(dt2)
* * * * * *Dim quants As String = dt2(0)(1)
* * * * * *Dim quant As String() = quants.Split("-")
* * * * * *For ii As Integer = 0 To quant.Count - 1
* * * * * * * *ComboQuantity.Items.Add(quant(ii))
* * * * * *Next
* * * * * *Dim stores As String = dt2(0)(2)
* * * * * *Dim store As String() = stores.Split("-")
* * * * * *itemRoute = store

* * * *End If

* *End Sub

* *Private Sub ComboQuantity_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboQuantity.SelectedIndexChanged

* * * *ComboStore.Items.Clear()
* * * *ComboStore.Items.Add(itemRoute(ComboQuantity.Sele ctedIndex))

* *End Sub
End Class