تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في ListView لاتظهر العناصر المضافة برمجياً ؟؟؟؟؟؟؟؟
#1
السلام عليكم ورحمة الله وبركاته
كيف حالكم اخواني الأفاضل عساكم بخير وصحة وسلامة ان شاء الله تعالى

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

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

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

وانا اقوم ببرمجة الــ 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 المحدد "اي اول معلومة"

وهكذا


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

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




تفضل

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]
السلام عليكم ورحمة الله وبركاته
 
 
@@@ سامحوني، منقطع نهائياً @@@

 
الرد }}}}
تم الشكر بواسطة:
#3
السلام عليكم

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

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

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

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


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

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

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

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

Moving Complex Objects Across The Network
الرد }}}}
تم الشكر بواسطة:
#7
sajad كتب :السلام عليكم

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

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

Moving Complex Objects Across The Network

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

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

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

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

إذا اردت التجريب اخي انت تستطيع ذلك بسهولة
اجعل البرنامج المرسل يرسل سلسلة نصية إلى البرنامج المستقبل وضع فورمين وضع في الفورم الثانية مربع نص وحاول تعديل محتويات مربع النص بالمعلومات القادمة من الجهاز المرسل وذلك بعد وضع الخاصية checkforillegalcrossthreadcalls=false وسترى ان التعديلات التي اجريتها لم تطبق
الرد }}}}
تم الشكر بواسطة:
#8
يعني اخي العزيز انت تريد التعديل في الفورم الثاني وتحاول اظهار النص المعدل في الفورم الاول؟ هل هذا قصدك؟
الرد }}}}
تم الشكر بواسطة:
#9
سوف أشرح قصدي بالتفصيل

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

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

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

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


[/b]
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة في save بيانات مستوردة من ملف إكسيل أثناء حفظها في قاعدة بيانات أكسيس benomar 2 112 09-09-16, 11:14 AM
آخر رد: benomar
  [سؤال] مشكلة في اداة OpenFileDialog Ahmed Gandos 6 161 09-09-16, 06:56 AM
آخر رد: adel27
  اضافة item فى listview من فروم اخر أسامة 4 179 17-07-16, 04:25 PM
آخر رد: أسامة
  [سؤال] مشكلة في C# NourAhmed 1 233 15-04-16, 12:18 PM
آخر رد: derham
  مشكلة التيم اوت time out Http Web Request الماجيك مسعد 20 678 26-03-16, 08:26 PM
آخر رد: الماجيك مسعد
  مشكلة فى select using linq to sql م.أحمد الدسوقى 3 194 22-12-15, 08:50 PM
آخر رد: hamada558
Exclamation مشكلة عند عمل CASTING عند استخدام LINQ م.أحمد الدسوقى 4 331 20-12-15, 08:25 PM
آخر رد: HASAN6.0
Information [C#.NET] طلب مسعاده في ال listView ديو05 5 296 16-09-15, 01:48 AM
آخر رد: أبو عمر
Lightbulb [سؤال] كيف أحدد موقع تكست بوكس موجود في الفورم (برمجياً) ماهر البيتي 2 622 13-12-14, 10:25 AM
آخر رد: وسام1
  [سؤال] مشكلة في فجوال ستوديو 2012 وندوز فون المعمار 0 674 09-01-14, 06:13 PM
آخر رد: المعمار

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم