منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيفية اختيار من CheckedListBox باستخدام زر enter
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
تذكير للإخوة الكرام
إن لم تنجح الأفكار التي أعطاها لك الاخوة الأفاضل
ربما هنا أنت بحاجة الي توريث الكونترول
و بناء كونترول جديد يحيث تقوم بالتعديل في الحدث KeyDown
(24-06-17, 06:58 PM)silverlight كتب : [ -> ]إن لم تنجح الأفكار التي أعطاها لك الاخوة الأفاضل
ربما هنا أنت بحاجة الي توريث الكونترول
و بناء كونترول جديد يحيث تقوم بالتعديل في الحدث KeyDown
جزاك الله خيرا silverlight
ولو تكرمت بتطبيق ذلك على المثال المرفق أكون شاكرا لك
فهمت عليك ، و لكن للأسف لا يوجد لدي الخلفية اللازمة ،

بإذن الله الأخوان يفيدونك ،
اي مصفوفة وحسب طريقة تصميمها تستطيع من خلال loop انك تسترد كل عناصرها او تسترد ايضا Index الخاص بكل عنصر في المصفوفة
وطالما حصلت علي index عليك ان تتأكد أولا من CheckState الخاصة بالعنصر عن طريق استخدام GetItemCheckState
فإن كانت True فهنا أما أن تلغي CheckState أو لا  تلغيها وهذا قرااك
ثم بعد ذلك تستخدم ٍSetItemChecked بحيث تمرر لها index و قيمة تكون عكس القيمة التي تحصل عليها من GetItemCheckState


فيه فكرة بسيطة انك تحصل علي العنصر و Index الخاص به في وقت واحد
وهو ان تستخدم Generic Dictionary مدخلاته عبارة عن Integer , String و تقوم بعمل loop علي جميع العتاصر بشرط تتأكد ان المصفوفة بها عناصر اصلا
ثم تقوم بتعبئة Generic Dictionary باسم العنصر و  index الخاص به
بحيث تبحث داخل Generic Dictionary عن العنصر و تسترد Index الخاص به
وهنا تطبق ما أوضحته لك أعلاه علي CheckedListBox
(26-06-17, 05:38 PM)silverlight كتب : [ -> ]اي مصفوفة وحسب طريقة تصميمها تستطيع من خلال loop انك تسترد كل عناصرها او تسترد ايضا Index الخاص بكل عنصر في المصفوفة
وطالما حصلت علي index عليك ان تتأكد أولا من CheckState الخاصة بالعنصر عن طريق استخدام GetItemCheckState
فإن كانت True فهنا أما أن تلغي CheckState أو لا  تلغيها وهذا قرااك
ثم بعد ذلك تستخدم ٍSetItemChecked بحيث تمرر لها index و قيمة تكون عكس القيمة التي تحصل عليها من GetItemCheckState


فيه فكرة بسيطة انك تحصل علي العنصر و Index الخاص به في وقت واحد
وهو ان تستخدم Generic Dictionary مدخلاته عبارة عن Integer , String و تقوم بعمل loop علي جميع العتاصر بشرط تتأكد ان المصفوفة بها عناصر اصلا
ثم تقوم بتعبئة Generic Dictionary باسم العنصر و  index الخاص به
بحيث تبحث داخل Generic Dictionary عن العنصر و تسترد Index الخاص به
وهنا تطبق ما أوضحته لك أعلاه علي CheckedListBox

أخي silverlight
نظرا لأني مبتدئ
فلا أستطيع استيعاب وتطبيق ما ذكرتَه
فإن تيسر لك وتطبقه على المثال المرفق سابقا فهذا فضل منك
وإلا فيسر الله من يقوم به
جزاك الله خيرا على اهتمامك.. وجعله في ميزان حسناتك
وعليكم السلام و رحمة الله و بركاته
عيدكم مبارك باذن الله

ضع هذه الدالة لديك
PHP كود :
   Private Async Function ListChange() As Task(Of Integer)
 
       For i As Integer 0 To CheckedListBox1.Items.Count 1

            If CheckedListBox1
.GetItemChecked(i) = True And TextBox2.Text.Contains(CheckedListBox1.Items(i).ToString) = False Then

                If TextBox2
.Text "" Then
                    TextBox2
.AppendText(CheckedListBox1.Items(i).ToString)
 
               Else
                    TextBox2
.AppendText(" ; " CheckedListBox1.Items(i).ToString)
 
               End If
 
               TextBox1.Focus()

 
           End If
 
       Next
        Await Task
.Delay(100)
 
       Return 0
    End 
Function 
وضع في الحدث التالي TextBox1_KeyPress  هذا الكود

PHP كود :
   Private Async Sub TextBox1_KeyPress(sender As ObjectAs KeyPressEventArgsHandles TextBox1.KeyPress
        If e
.KeyChar ChrW(13Then
            For x 
As Integer 0 To CheckedListBox1.Items.Count 1
                If CheckedListBox1
.Items(x).ToString.Contains(TextBox1.TextThen
                    CheckedListBox1
.SetItemChecked(xTrue)
 
               End If
 
           Next
            e
.Handled True
        End 
If
 
       Await ListChange()

 
   End Sub 

و ان شاء الله تنحل مشكلتك
(27-06-17, 08:25 AM)ابو ليلى كتب : [ -> ]وعليكم السلام و رحمة الله و بركاته
عيدكم مبارك باذن الله

ضع هذه الدالة لديك
PHP كود :
   Private Async Function ListChange() As Task(Of Integer)
 
       For i As Integer 0 To CheckedListBox1.Items.Count 1

            If CheckedListBox1
.GetItemChecked(i) = True And TextBox2.Text.Contains(CheckedListBox1.Items(i).ToString) = False Then

                If TextBox2
.Text "" Then
                    TextBox2
.AppendText(CheckedListBox1.Items(i).ToString)
 
               Else
                    TextBox2
.AppendText(" ; " CheckedListBox1.Items(i).ToString)
 
               End If
 
               TextBox1.Focus()

 
           End If
 
       Next
        Await Task
.Delay(100)
 
       Return 0
    End 
Function 
وضع في الحدث التالي TextBox1_KeyPress  هذا الكود

PHP كود :
   Private Async Sub TextBox1_KeyPress(sender As ObjectAs KeyPressEventArgsHandles TextBox1.KeyPress
        If e
.KeyChar ChrW(13Then
            For x 
As Integer 0 To CheckedListBox1.Items.Count 1
                If CheckedListBox1
.Items(x).ToString.Contains(TextBox1.TextThen
                    CheckedListBox1
.SetItemChecked(xTrue)
 
               End If
 
           Next
            e
.Handled True
        End 
If
 
       Await ListChange()

 
   End Sub 

و ان شاء الله تنحل مشكلتك

أخي [b]ابو ليلى
فعلا حلت المشكلة
تقبل الله منا ومنكم صالح الأعمال
وجزاك الله خيرا
وجزى الله خيرا كل من أسهم في هذا الموضوع
[/b]
أخي أبو ليلى.. بارك الله فيك
أريد إضافة يسيرة

عند الضغط على enter تم اختيار العنصر في CheckedListBox ونقله إلى TextBox
أريد عند الضغط مرة ثانية على enter أن يتم إلغاء اختيار العنصر وأن يحذف من TextBox

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

عدل الكود للتالي
PHP كود :
   Private Async Sub TextBox1_KeyPress(sender As ObjectAs KeyPressEventArgsHandles TextBox1.KeyPress
        If e
.KeyChar ChrW(13Then
            For x 
As Integer 0 To CheckedListBox1.Items.Count 1
                If CheckedListBox1
.Items(x).ToString.Equals(TextBox1.TextThen
                    If TextBox2
.Text.Contains(CheckedListBox1.Items(x).ToStringThen
                        CheckedListBox1
.SetItemChecked(xFalse)
 
                       TextBox1.Clear()
 
                   Else
                        CheckedListBox1
.SetItemChecked(xTrue)
 
                   End If
 
               End If
 
           Next
            e
.Handled True
        End 
If
 
       Await ListChange()

 
   End Sub 
الصفحات : 1 2 3