منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[C#.NET] ممكن حل هذه المشكلة حتى تعم الفائدة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176)
+--- الموضوع : [C#.NET] ممكن حل هذه المشكلة حتى تعم الفائدة (/showthread.php?tid=28280)



ممكن حل هذه المشكلة حتى تعم الفائدة - abumuhannadzym - 17-01-19

  
PHP كود :
txtNumbers.Clear();
 
           for (int i 0; (<= (ListBox1.Items.Count 1)); i++)
 
           {

 
          
                txtNumbers
.Text += ListBox1.SelectedItem.ToString() ;


 
           
النتيجة كتالي
System.Data.DataRowView

System.Data.DataRowView


المفروض تطلع النتيجة
96655511111
96655522222


RE: ممكن حل هذه المشكلة حتى تعم الفائدة - محمد كريّم - 17-01-19

الحلقة غير ضرورية
بتلف على كل عناصر القائمة وهذا خطأ حسب ما فهمت فأنت بحاجة العناصر المحددة فقط

تقريبا يجب عليك البحث عن العناصر المحددة فقط ثم استخدام نصوصها


PHP كود :
foreach (object MyItem in ListBox1.SelectedItems)
{
 
    DataRowView drv = (DataRowView)MyItem;
 
    txtNumbers.Text += drv["الحقل"].ToString;
 
 



كذلك يمكن استخدام ميثود GetItemText للحصول على نص العناصر

PHP كود :
txtNumbers.Text += ListBox1.GetItemText(ListBox1.SelectedItem); 



RE: ممكن حل هذه المشكلة حتى تعم الفائدة - abumuhannadzym - 17-01-19

(17-01-19, 02:42 PM)محمد كريّم كتب : الحلقة غير ضرورية
بتلف على كل عناصر القائمة وهذا خطأ حسب ما فهمت فأنت بحاجة العناصر المحددة فقط

تقريبا يجب عليك البحث عن العناصر المحددة فقط ثم استخدام نصوصها


PHP كود :
foreach (object MyItem in ListBox1.SelectedItems)
{
 
    DataRowView drv = (DataRowView)MyItem;
 
    txtNumbers.Text += drv["الحقل"].ToString;
 
 



كذلك يمكن استخدام ميثود GetItemText للحصول على نص العناصر

PHP كود :
txtNumbers.Text += ListBox1.GetItemText(ListBox1.SelectedItem); 

الف شكر اخي هذا ماكنت ابحث عنه من يومين ونحلت المشكلة بهذا الكود تحياتي لك 

(17-01-19, 02:42 PM)محمد كريّم كتب : الحلقة غير ضرورية
بتلف على كل عناصر القائمة وهذا خطأ حسب ما فهمت فأنت بحاجة العناصر المحددة فقط

تقريبا يجب عليك البحث عن العناصر المحددة فقط ثم استخدام نصوصها


PHP كود :
foreach (object MyItem in ListBox1.SelectedItems)
{
 
    DataRowView drv = (DataRowView)MyItem;
 
    txtNumbers.Text += drv["الحقل"].ToString;
 
 



كذلك يمكن استخدام ميثود GetItemText للحصول على نص العناصر

PHP كود :
txtNumbers.Text += ListBox1.GetItemText(ListBox1.SelectedItem); 


 هذا الكود عمل لكن فقط يطلع الصف الاول وبقية الصفوف لاتطلع

txtNumbers.Text = ListBox1.GetItemText(ListBox1.SelectedItem);


RE: ممكن حل هذه المشكلة حتى تعم الفائدة - abumuhannadzym - 22-01-19

(17-01-19, 02:42 PM)محمد كريّم كتب : الحلقة غير ضرورية
بتلف على كل عناصر القائمة وهذا خطأ حسب ما فهمت فأنت بحاجة العناصر المحددة فقط

تقريبا يجب عليك البحث عن العناصر المحددة فقط ثم استخدام نصوصها


PHP كود :
foreach (object MyItem in ListBox1.SelectedItems)
{
 
    DataRowView drv = (DataRowView)MyItem;
 
    txtNumbers.Text += drv["الحقل"].ToString;
 
 



كذلك يمكن استخدام ميثود GetItemText للحصول على نص العناصر

PHP كود :
txtNumbers.Text += ListBox1.GetItemText(ListBox1.SelectedItem); 

انا اريد كل مافي  مافي ListBox1 ينتقل الى txtNumbers.Text


RE: ممكن حل هذه المشكلة حتى تعم الفائدة - elgokr - 22-01-19

مرحباً abumuhannadzym

كل ما عليك استخدام الكود بهذا الشكل
كود :
           for (int ii = 0; ii <= listBox1.Items.Count - 1; ii++)
           {
               if (ii == listBox1.Items.Count - 1)
               {
                   txtNumbers.Text += listBox1.Items[ii].ToString();
               }
               else
               {
                   txtNumbers.Text += listBox1.Items[ii].ToString() + "\r\n";
               }
           }
وبكده تكون نقلت كل ما هو فى listBox الى TextBox
تذكر شئ مهم جداً ان تجعل txtNumbers
كود :
Multiline = True

تحياتى لك
وتمنياتى لك التوفيق



RE: ممكن حل هذه المشكلة حتى تعم الفائدة - abumuhannadzym - 22-01-19

(22-01-19, 06:12 PM)elgokr كتب :
مرحباً abumuhannadzym

كل ما عليك استخدام الكود بهذا الشكل
كود :
           for (int ii = 0; ii <= listBox1.Items.Count - 1; ii++)
           {
               if (ii == listBox1.Items.Count - 1)
               {
                   txtNumbers.Text += listBox1.Items[ii].ToString();
               }
               else
               {
                   txtNumbers.Text += listBox1.Items[ii].ToString() + "\r\n";
               }
           }
وبكده تكون نقلت كل ما هو فى listBox الى TextBox
تذكر شئ مهم جداً ان تجعل txtNumbers
كود :
Multiline = True

تحياتى لك
وتمنياتى لك التوفيق

الف شكر على الرد اخي ولكن ظهر كما في الصورة في المرفق 
حيث كرر الرقم الاول فقط


RE: ممكن حل هذه المشكلة حتى تعم الفائدة - abumuhannadzym - 22-01-19

كود :
 for (int i = 0; (i <= (ListBox1.Items.Count - 1)); i++)
           {

               txtNumbers.Text = ListBox1.GetItemText(ListBox1.SelectedItem) + "\r\n";
           }

هذا الكود نقل الرقم الاول فقط وانا اريد نقل جميع الرقام النتيجة في المرفق

لقد تم حل المشكلة بهذا الكود واشكر كل من ساهم 



PHP كود :
txtNumbers.AppendText(ListBox1.GetItemText(ListBox1.Items[i]) + "\r\n"); 



RE: ممكن حل هذه المشكلة حتى تعم الفائدة - elgokr - 23-01-19

(22-01-19, 08:35 PM)abumuhannadzym كتب : الف شكر على الرد اخي ولكن ظهر كما في الصورة في المرفق 
حيث كرر الرقم الاول فقط


من المستحيل ان يقوم بتكرار نفس السطر

الا فى حالة واحدة فقط وهو تعديلك للكود او انك تستخدم الكود فى حدث غير صحيح


الشئ الذى اريد ان اقوم بشرحه لك
حتى توضح الصورة لك بين فرق الكود

الكود الاول فى الرد الاخير خاص السطر 
كود :
txtNumbers.Text = ListBox1.GetItemText(ListBox1.SelectedItem) + "\r\n";

والكود الثاني فى الرد الاخير خاص السطر
كود :
txtNumbers.AppendText(ListBox1.GetItemText(ListBox1.Items[i]) + "\r\n");

كلاهما واحد ولكن فى الكود الاول كان ينقصه فقط وضع +
ليكون الشكل على هذا النحو
كود :
txtNumbers.Text += ListBox1.GetItemText(ListBox1.SelectedItem) + "\r\n";

جملة Append الموجود بالكود
تعنى تعال بنهاية القيمة لاضافة القيمة التالية

هى نفسها += لنفس المعنى
والتى تعنى نهاية القيمة لاضافة القيمة التالية

طيب فى الكود الخاص بردى السابق وضعت شرط تحقق
الشرط ده وظيفته بانه يجعل اخر قيمة بدون سطر جديد

فانظر لكودك التالى بعد اضافة له الشرط
كود :
           for (int i = 0; (i <= (ListBox1.Items.Count - 1)); i++)
           {
               if (i == ListBox1.Items.Count - 1)
               {
                   txtNumbers.AppendText(ListBox1.GetItemText(ListBox1.Items[i]));
               }
               else
               {
                   txtNumbers.AppendText(ListBox1.GetItemText(ListBox1.Items[i]) + "\r\n");
               }
           }

بحيث انه لا يكون هناك سطر فارغ بنهاية القيمة فقط ليس اكثر
اتمنى ان تكون الصورة كاملة لك الان وان يكون الكود مفهوم لديك

للتمكن من تجنب اخطائها فى المرات القادمة

تحياتى لك
وتمنياتى لك التوفيق