![]() |
|
[سؤال] إيقاف عمل أداة أثناء الـ Form_Load - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [سؤال] إيقاف عمل أداة أثناء الـ Form_Load (/showthread.php?tid=24183) الصفحات:
1
2
|
إيقاف عمل أداة أثناء الـ Form_Load - AL - WafaaPro - 15-03-18 بسم الله الرحمن الرحيم
أخوتي الكرام
لدي مشكلة صغيرة
لدي Combobox1
في حدث الـ Form_Load أقوم بملئ الـ ComboBox بالبيانات
و في حدث ComboBox1_SelectedIndexChanged ينفذ أمر محدد
المشكلة أنه عند تحميل الفورم يقوم الـ Combobox بتنفيذ الأمر دون النقر على الخيار المراد طبعا ينفذ الأمر الأول
و ذلك لأن ملئه بالبيانات في حدث تحميل الفورم هو تغيير على محتوياته ما يؤدي إلى تنفيذ الامر
ما أريده هو منع الـ ComboBox من تنفيذ الأوامر أثناء تحميل الفورم
التنفيذ فقط من داخل الفورم
أرجو أن تكون المشكلة واضحة
و لكم جزيل الشكر
RE: إيقاف عمل أداة أثناء الـ Form_Load - عبدالله الدوسري - 15-03-18 استخدم : SelectionChangeCommitted تحدث فقط عندما يقوم المستخدم بالإجراء كود : Private Sub ComboBox1_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles ComboBox1.SelectionChangeCommittedبدلاً من : SelectedIndexChanged تحدث في أي وقت يتم فية تغيير العنصر المحدد كود : Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChangedRE: إيقاف عمل أداة أثناء الـ Form_Load - AL - WafaaPro - 15-03-18 ألف شكر أخي معلومة جديدة و نجحت تماما كل الشكر و االتقدير RE: إيقاف عمل أداة أثناء الـ Form_Load - AL - WafaaPro - 18-03-18 أخي الكريم
الطريقة تعمل تماما و تمنع تنفيذ الأمر أثناء تحميل الفورم كما تفضلت تماما
لكن المشكلة أنه باستخدام هذه الطريقة لا أحصل عى النتيجة الصحيحة
فمثلا الـ ComboBox تعرض الأسماء من جدول الطلاب في قاعدة البيانات
المطلوب عن النقر على اسم الطالب يقوم الكود باستدعاء باقي المعلومات و يضعها في TextBox
عن طريق SelectionChangeCommitted
النتيجة لا تتطابق مع الاسم الذي نبحث عنه و كل ما اخترت اسم تظهر نتيجة الاسم الذي اخترته قبل
إذا بحثت عن محمد لا يعطي نتيجة ثم أبحث عن أحمد أحصل على نتيجة محمد ثم على اسماعيل فأحصل على نتيجة أحمد و هكذا
أما عن طريق SelectedIndexChanged
أحصل على النتائج الدقيقة تماما و بنفس الكود لكن تبقى مشكلة تنفيذ الأمر أثناء تحميل الفورم
RE: إيقاف عمل أداة أثناء الـ Form_Load - AL - WafaaPro - 18-03-18 أرجو المساعدة RE: إيقاف عمل أداة أثناء الـ Form_Load - عبدالله الدوسري - 18-03-18 (18-03-18, 12:33 AM)AL - WafaaPro كتب : تأكد من طريقة إستخدامك للأكواد , SelectionChangeCommitted تعمل تماماً مثل SelectedIndexChanged RE: إيقاف عمل أداة أثناء الـ Form_Load - AL - WafaaPro - 18-03-18 أخي الكود صحيح تماما أستخدمه في Button و في TextBox و كما استخدمه في Combobox و لكن عند وضعه في الحدث SelectionChangeCommitted عندها لا يعطيني نتيجة الخيار نفسه كما أنني عند اختيار الخيار ( محمد ) مثلا يظهر في الـ Combobox الخيار ( أحمد ) و هكذا هل من طريقة أخرى لإيقاف تنفيذ كود أو أمر محدد أثناء تحميل الفورم و هذا الكود المراد إيقافه ليس ضمن حدث الفورم لود RE: إيقاف عمل أداة أثناء الـ Form_Load - عبدالله الدوسري - 18-03-18 هل ممكن أن ترفق الكود الذي تستخدمة . لا يمكن لـ ( SelectionChangeCommitted ) أن تجلب بيانات مختلفة عن المحددة ( الآن ) في الـ ComboBox RE: إيقاف عمل أداة أثناء الـ Form_Load - AL - WafaaPro - 18-03-18 سأرفع مثال بسيط مثال عن المشكلة نتيجة البحث غير متطابقة مع الاختيار من Combobox و هذا الكود يعمل في كل الأدوات الأخرى بشكل ناجح RE: إيقاف عمل أداة أثناء الـ Form_Load - عبدالله الدوسري - 18-03-18 ملاحظة : في الحدث Form1_Load ( لم اعدل شيء ولكن , تعليق فقط ) طريقة جلب البيانات مخبوصة وأنت في غنى عن الكثير من الأكواد. المشروع بعد التعديل : [attachment=17426] لاحظ السطرين رقم : 36 + 37 في الكود BindingContext في السطر رقم 46 لا تستخدم بهذة الطريقة . Me.BindingContext(ds, "WItem").Count من الأفضل سؤال الجدول مباشرتاً : ds.Tables("WItem").Rows.Count أو إستخدام Fill للسؤال عن عدد السجلات الراجعة من الإستعلام : If da.Fill(ds, "WItem") > 0 Then Fill تعود برقم , وهذا الرقم هو عدد السجلات المتأثرة من تنفيذ الإستعلام وهو عدد السجلات من جملة SELECT |