تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طلب حل لمشكلة التكست بوكس تعطي قيمة فارغة
#1
السلام عليكم ورحمة الله وبركاته

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


تم ارفاق  المشروع  ارجو الحل


الملفات المرفقة
.rar   textbox.rar (الحجم : 45.66 ك ب / التحميلات : 22)
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم

هذا تعديل لكلاس class text
كود :
namespace texxxxxxxxxxxxxxxtbox
{


   public class text
   {

       string text1 = "";

       public text(Form1 form)
       {
           text1 = form.textBox1.Text;
       }

       public void Do(Form1 form)
       {
           //form.textBox1.Text = "dddddddddddd";
           if (text1 == form.textBox1.Text)
           {
               form.label1.Text = text1;
           }
       }

   }

}

وهذا تعديل كود البوتون
كود :
       private void button1_Click(object sender, EventArgs e)
       {
           text t = new text(this);
           t.Do(this);      
       }
الرد }}}}
تم الشكر بواسطة: محمد كريّم , khodor1985 , last_warrior
#3
المشكلة في الكلاس class انك تقوم بانشاء نسخة جديدة من الفورم1 بهذا الكود
       Form1 form = new Form1();
وهذا يعني ان الأدوات على الفورم الجديد form ليست نفسها الادوات التي تراها في الفورم المفتوح
والكود سينفذ في كل مرة تضغط الزر وسينشأ فورم جديد بأدوات جديدة
اكتشف ذلك باضافة هذا الكود في ميثود do() الموجودة في الكلاس
           form.label1.Text = "الفورم الذي انشأته";
           form.Show();

الآن اعتقد انك فهمت ما يحدث ولماذا لا يتغير النص في الفورم المفتوح
ننتقل للحل
يمكن ان تستخدم هذا الكلاس الجديد استبدله في ملف txt.cs
كود :
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;

namespace texxxxxxxxxxxxxxxtbox
{
   public class text
   {
       string text1;
       private Form1 original_form1 = null;
       public text(Form callingForm)
       {
           original_form1 = callingForm as Form1;
           text1 = original_form1.textBox1.Text;
       }

       public void Do()
       {
           this.original_form1.label1.Text = text1;
       }
   }
}


قم باضافة المتغير الى كود استدعاء الكلاس في ملف الفورم
            text t = new text(this);

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

كذلك اضيف استدعاء مكتبة جديدة لم تكن في الكلاس قبل التعديل
using System.Windows.Forms;

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


كود :
   public  class text
   {
       public text ()
       {
       }

       public void Do(TextBox myTextBox, Label myLabel)
       {
           myLabel.Text = myTextBox.Text;
       }
   }


غير كود حدث الكليك في ملف الفورم الى
كود :
       private void button1_Click(object sender, EventArgs e)
       {
           text t = new text();
           t.Do(textBox1, label1);
       }


اتمنى ان تكون الفكرة وصلت

يا مساعدة
ما انتبهت انك رديت بسبب التاخر في تشغيل المشروع ثم تنسيق الرد
لو الاخوة يحطوا الاكواد اللي فيها مشكلة بدل من رفع المشاريع ومرفقات يكون افضل
الله يعطيك العافية
الرد }}}}
تم الشكر بواسطة: khodor1985 , last_warrior
#4
السلام عليكم أخي العزيز ورحمة الله وبركاته
لقد تم التعديل على المشروع بناء لطلبك

الأكواد :
الكلاس :
PHP كود :
public static void GetText (Form1 frm,TextBox txt)
 
       {
 
           foreach (Control item in frm.Controls)
 
           {
 
               if(item is TextBox) { frm.label1.Text item.Text; }
 
           }
 
       

استدعاء الأداة في النموذج :
PHP كود :
text.GetText(thistextBox1); 

المشروع بعد التعديل عليه :

.rar   khodor -1985 textbox.rar (الحجم : 48.43 ك ب / التحميلات : 13)

أتمنى لك التوفيق
عن مولا نا علي ابن أبي طالب عليه السلام :
إضرب بعض الرأي ببعض يتولد منه الصواب.
الرد }}}}
تم الشكر بواسطة: last_warrior
#5
شكرا جزيلا على المساعدة اخواني

مساعدة

محمد كريّم

khodor1985

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

جزاكم الله الخير ان شاء الله

انا ايضا قولت الكلاس لا يري ادوات الفورم شكرا اخي محمد وضحت الفكرة رغم البحث عنها فى موقع اجنبية ولم اصل لشئ
الرد }}}}
تم الشكر بواسطة: khodor1985 , محمد كريّم
#6
بتصور هذا الكود الذي سأصعه الآن هو حل ديناميكي يمكن استخدامه مع أي نموذج في المشروع :
PHP كود :
public static void GetText (Form frm,TextBox txt,Label lbl)
        {
            
lbl.Text txt.Text;
           
        } 

الإستدعاء في النموذج :
PHP كود :
text.GetText(thistextBox1,label1); 
عن مولا نا علي ابن أبي طالب عليه السلام :
إضرب بعض الرأي ببعض يتولد منه الصواب.
الرد }}}}
تم الشكر بواسطة: محمد كريّم , last_warrior
#7
شكرا اخي khodor1985

اكواد وطريقة مهمة
الرد }}}}
تم الشكر بواسطة: khodor1985


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] تصحيح كود التاكد ان التكست بوكس ليس فارغأ قاسم 4 89 13-11-17, 05:28 PM
آخر رد: قاسم
  [C#.NET] المساعدة في نقل قيمة من ليبل الى تيكست وادي العوضي 2 102 06-10-17, 09:30 PM
آخر رد: وادي العوضي
  [C#.NET] المساعدة في تعبئة كومبو بوكس عن طريق تيكست بوكس وادي العوضي 2 137 05-10-17, 12:24 AM
آخر رد: وادي العوضي
  هل يمكن حفظ قيمة checkbox؟ abozeyd 2 142 26-08-17, 11:20 PM
آخر رد: abozeyd
  سؤال عن عمل فلترة باستخدام تكست بوكس last_warrior 0 291 10-12-16, 12:44 AM
آخر رد: last_warrior
  مساعدة في تمرير قيمة الى الكريستال ريبورت عدنان الشمري 6 588 19-10-16, 07:51 PM
آخر رد: عدنان الشمري
  التحقق من قيمة فى الريجيسترى Mohamed20 2 272 07-09-16, 05:36 PM
آخر رد: Mohamed20
  تعبئة الكومبو بوكس بحقلين بواسطة اجراء مخزن حماده السعيد 1 514 21-12-15, 02:27 PM
آخر رد: hamada558
Sad انا اريد ان اضغط على كوماند موجود في الفورم الاول و يضع لي قيمة في الفورم الاخير؟؟؟؟؟ shabod 0 388 21-11-15, 09:34 PM
آخر رد: shabod
  [سؤال] كيف ارجع قيمة messagebox من Class عبد الله 3 741 20-03-15, 11:45 PM
آخر رد: الشاكي لله

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


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