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

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

الصفحات: 1 2


مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - <br> - 08-07-13

السلام عليكم ورحمة الله وبركاته
كيف حالكم اخواني الأفاضل عساكم بخير وصحة وسلامة ان شاء الله تعالى

إخواني الأعزاء

لدي مشكلة تكاد ان تسب لي جلطة دموية وتكاد ان ترفع ضغطي حتى تفجر احشائي

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

وانا اقوم ببرمجة الــ FileManager ليتم تصفح الجهاز المراد التحكم فيه

ارسل بيانات عبر الانترنت إلى ListvIew

تكون البيانات على الشكل التالي

c:\\^34456^3451^yes
اي تفصل بين كل معلومة ومعلومة عن السواقة الفاصل ^ حيث يتم استخدام الدالة split

وهذا الكود الخاص باستخراج المعلومات واضافتها إلى الــ ListView

كود :
;

        public void InsertItems(string ItemsText, string [] SubItemsText)
        {
            string[] itmsname = ItemsText.Split('^');
            try
            {
                for (int i = 0; i < itmsname.Length; i++)
                {
                        ListViewItem hh1 = new ListViewItem(itmsname[i]);
                        string[] currentsub = SubItemsText[i].Split('^');
                    for (int j = 0; j < SubItemsText.Length; j++)
                    {
                        hh1.SubItems.Add(currentsub[j]);
                    }
                    LvwDriveView.Items.Insert(LvwDriveView.Items.Count, hh1);
                }
            }
            catch (Exception ex) { ;}
        }
    }
}




كما تشاهدون هناك اكواد وضعت قبلها // لانني كنت احاول اكثر من طريقة لإضافت البيانات إلى الليست فيو ولم تنفع


ارجوكم ساعدوني والله اكاد اجن

الــ ListView لا يحدث فيها اي تغييرات كل شيء طبيعي تتبعت البرنامج بالــ Break Point يخرني الكومبايلر ان كل شيء طبيعي واللست فيو فيها ItemCount بعدد الإيتيم المضاف وكل شيء تماما

ولكن بعد الإنتهاء من تنفيذ الكود لا يحدث اي تغيير على اللست فيو ولا يضاف اي شيء نهائياً ولا يحدث اي تغيير

قلت في نفسي ربما علي إضاف BeginUpdate و EndUpdate ايضاً لم تنفع قلت في نفسي ربما علي استخدام الميثود Insert وليس Add ايضاً لم ينفع ذلك

مع العلم ان البيانات تكون على الشكل السابق كمل قلنا

وتتألف من عدة اسطر
-----------------------------
-----------------------------
اول معلومة من كل سطر هي الــ Item بقية المعلومات من كل سطر هي ال SubItem الخاصة بال Item المحدد "اي اول معلومة"

وهكذا


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


مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - @@أبورائد@@ - 08-07-13


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




تفضل

PHP كود :
private void button1_Click(object senderEventArgs e)
{
    
InsertItems("c:\\^34456^3451^yes");
}


public 
void InsertItems(string txt)
{
    
string[] txt.Split('^');
    
ListViewItem itm = new ListViewItem(s[0]);
    for (
int i 1<= s.Length 1i++)
    {
        
itm.SubItems.Add(s[i]);
    }
    
LvwDriveView.Items.Add(itm);



[COLOR="#FF0000"]تم التعديل




[/COLOR]
السلام عليكم ورحمة الله وبركاته



مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - Sajad - 08-07-13

السلام عليكم

أخي العزيز كيف تريد ظهرو البيانات؟ هل Details أم Tile أم ماذا؟



مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - <br> - 09-07-13

اخي Details نعم والمشكلة اني جربت كل الطرق وهذا الكود الذي أعطيتني اياه لم ينفع مع كل أسف المشكلة انني استخدم برنامج MultiThreads
حيث هناك Thread مخصص لأستقبال البيانات وعندما استقبل البيانات لا استطيع التعديل إلا على عناصر الفورم الرئيسية وذلك بعد ضبط الخاصية
CheackForIllegal .... إلخ إلى False حتى لا يظهر خطأ Cross-Thread

لقد جربت وكتبت ميثود بالفورم الخاصة بالـ FileManager تقوم بإظهار MessageBox وفعلاً عندما تم استقبال البيانات فعلاً ظهرت المسج بوكس من الفورم الخاصة بالـ File Manager

ولكن عندما أقوم بتعديل اي عنصر من عناصر الفورم لا يتم الإحتفاظ بالتعديلات

جربت عندك اخي العزيز ساجاد
قم ببرمجة server و client باستخدام السوكيت
واجعل الكلينت يحوي فورمين
ضع Textbox بالفورم الثانية وعند ورود اي شيء من السرفر قم بتغيير النص الموجود في TextBox الموجودة في الفورم الثانية وسترى ان كل شيء على ما يرام حتى لو تتبعت بواسطة الــ BPs ستجد ان السلسلة النصية تدخل للتيكست بوكس ولكن يبدوا ان الـ TextBox لا تحتفظ بالتعديلات او ترفضها هي وكل العناصر


والله اكاد اصاب بإعياء صحي وتلف بالأعصاب لا يوجد اي سبب برمجي لما يحصل معي ياأخي Cool

ولكم مني كل التحية جزاك الله ألف ألف ألف خير لانك مهتم بمشكلتي ياأخي العزيز وارجوك ابقى على هذا الإهتمام لعل الله يجعل الحل على يديك المشكلة مسببة لي إرهاق والله


مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - <br> - 09-07-13

جزاكم الله خير كثيراً اخي العزيز ابو رائد على المحاولة لحل مشكلتي
احب ان اضيف ان الخلاصة النهائية المشكلة ليست في الـ Listview بذاتها بل المشكلة في كل العناصر اي عنصر تضعه لا يمكنك ان تقوم بتعديله إن لم يكن على الفورم الرئيسية الأولى


مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - Sajad - 09-07-13

السلام عليكم

اخي العزيز اذا كانت المشكلة Cross-Thread

فانظر الى هذا الموضوع وكيفية حل هذه المشكلة

Moving Complex Objects Across The Network



مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - <br> - 11-07-13

sajad كتب :السلام عليكم

اخي العزيز اذا كانت المشكلة Cross-Thread

فانظر الى هذا الموضوع وكيفية حل هذه المشكلة

Moving Complex Objects Across The Network

لا أخي العزيز المشكلة ليست Cross Thread حيث لا يوجد اي رسالة خطأ تظهر كانت رسالة الخطأ تظهر ولكنني قمت بتحديد الخاصية checkforillegalcrossthreadcalls وضعت لها القيمة False وبعدها لم تعد تظهر رسالة الخطأ هذه اخي الفاضل

المشكلة ببساطة واختصار شديدين انني عندما اقوم بتعديل محتويات اي عنصر على فورم غير الفورم الأولى لا يحصل اي شيء اي التعديلات لا تطّبق نهائياً

مع انه لا يوجد اي رسالة خطأ نهائياً او اي استثناء

فقط التعديلات التي اطبقها على عناصر فورم غير الفورم الأولى لا تطبق

إذا اردت التجريب اخي انت تستطيع ذلك بسهولة
اجعل البرنامج المرسل يرسل سلسلة نصية إلى البرنامج المستقبل وضع فورمين وضع في الفورم الثانية مربع نص وحاول تعديل محتويات مربع النص بالمعلومات القادمة من الجهاز المرسل وذلك بعد وضع الخاصية checkforillegalcrossthreadcalls=false وسترى ان التعديلات التي اجريتها لم تطبق


مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - Sajad - 11-07-13

يعني اخي العزيز انت تريد التعديل في الفورم الثاني وتحاول اظهار النص المعدل في الفورم الاول؟ هل هذا قصدك؟


مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - <br> - 11-07-13

سوف أشرح قصدي بالتفصيل

اخي انا استقبل سلسلة نصية من البرنامج المرسل والتكن مثلاً "abcdefg"
في البرنامج المستقبل في الفورم الأولى الرئيسية لدي ميثود الإستقبال

المتغير tar هو الذي يحوي النص المستقبل

لدي فورم ثانية فيها Textbox وزر أمر Button1 حيث عند الضغط على زر button1 يرسل أمر للبرنامج المرسل بإرسال المعلومات التي لديه ويأتي الرد من البرنامج المرسل بالمعلومات المطلوبة
من الفورم الأولى اريد ان اضع محتويات المتغير tar في التكست بوكس الموجود في الفورم الثانية

يعني في الفورم الأولى سوف اكتب
Form2 h1 = new Form2
h1.textbox1.text = tar;
هذا ببساطة شديدة مع العلم ان الفورم الثانية تكون ظاهرة سابقاً يعني اظهر الفورم الثانية ثم اضغط الزر Button1


مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟ - Sajad - 11-07-13

[b]اخي الغالي يعني انت تريد ان ترسل الtar الى Form2 ومن ثم تعدل عليه؟


[/b]