منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[نقاش] سؤال - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [نقاش] سؤال (/showthread.php?tid=36638)



سؤال - MetoDas - 08-10-20

السلام عليكم ورحمة الله وبركاته

طبعاً بعد ما اتعب من البحث في النت ولجهلي لأمور كثيرة فإني اضطر بالنهاية لعرض السؤال هنا :

لدي ListBox وفيها مجموعة من الأسماء ، كيف يمكن تلوين عدد من هذه الأسماء بحيث يتوافق مع شرط معين ، يمعنى لو كان الأسم محمد يكون لون الصف اخضر أو لون الأسم اخضر وهكذا...

بحيث يتم تمييز أسماء عن أسماء أخرى بشروط معينة من خلال تلوينها بألوان عدة.


RE: سؤال - PeterGhattas082460 - 08-10-20

(08-10-20, 01:21 PM)MetoDas كتب : السلام عليكم ورحمة الله وبركاته

طبعاً بعد ما اتعب من البحث في النت ولجهلي لأمور كثيرة فإني اضطر بالنهاية لعرض السؤال هنا :

لدي ListBox وفيها مجموعة من الأسماء ، كيف يمكن تلوين عدد من هذه الأسماء بحيث يتوافق مع شرط معين ، يمعنى لو كان الأسم محمد يكون لون الصف اخضر أو لون الأسم اخضر وهكذا...

بحيث يتم تمييز أسماء عن أسماء أخرى بشروط معينة من خلال تلوينها بألوان عدة.

أهلاً بك ... Smile ...  الكود هو :

 Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click

        If ListBox1.SelectedItem = "Ahmed" Then
' لون الكلمة        
     ListBox1.ForeColor = Color.Yellow
' لون الخلفية
            ListBox1.BackColor = Color.Green
        End If

    End Sub


RE: سؤال - Kamil - 20-04-25

تلوين العنصر إذا احتوى على كلمة معينة، وليس بالضبط مساوي لها.
وأضيف لك شرطًا إضافيًا، مثل:

إذا احتوى الاسم على "محمد" → أخضر

إذا احتوى على "أحمد" → أحمر

إذا احتوى على "سارة" → أزرق

وإلا → أسود (الافتراضي)


الكود

PHP كود :
Private Sub Form1_Load(sender As ObjectAs EventArgsHandles MyBase.Load
    ListBox1
.DrawMode DrawMode.OwnerDrawFixed

    
' إضافة بعض الأسماء إلى الليست بوكس
    ListBox1.Items.Add("محمد علي")
    ListBox1.Items.Add("أحمد سالم")
    ListBox1.Items.Add("علي مصطفى")
    ListBox1.Items.Add("سارة حسن")
    ListBox1.Items.Add("محمد عبد الله")
End Sub

Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem
    If e.Index < 0 Then Return

    Dim itemText As String = ListBox1.Items(e.Index).ToString()
    Dim brush As Brush = Brushes.Black ' 
اللون الافتراضي

    
' الشروط المعدلة - حسب احتواء الاسم على كلمات معينة
    If itemText.Contains("محمد") Then
        brush = Brushes.Green
    ElseIf itemText.Contains("أحمد") Then
        brush = Brushes.Red
    ElseIf itemText.Contains("سارة") Then
        brush = Brushes.Blue
    End If

    ' 
رسم الخلفية
    e
.DrawBackground()

 
   ' رسم النص باللون المحدد
    e.Graphics.DrawString(itemText, e.Font, brush, e.Bounds)

    ' 
رسم الإطار حول العنصر إذا كان محدد
    e
.DrawFocusRectangle()
End Sub