+2 امتیاز

با سلام من کد زیر رو نوشتم حالا سوالم اینه میخوام بصورت عمومی باشه یعنی با یکبار نوشتن تو هر قسمت از فرم یا فرم های دیگه کد زیر اجرا بشه یه کلاس ایجاد کنم یا... و چطوری اون کد رو صدا بزنم لطفا همراه با کدنویسی امیدوارم منظورم رو رسونده باشم

با تشکر

var t1 = Convert.ToDecimal(f5.textBox9.Text);
var t2 = Convert.ToDecimal(f5.textBox14.Text);
while (t1 % 2 == 0 && t2 % 2 == 0)

{
f5.listBox4.Items.Clear();
t1 /= 2;
t2 /= 2;
f5.textBox9.Text = t1.ToString();
f5.textBox14.Text = t2.ToString();

 

1 پاسخ

+2 امتیاز

سلام . شما میتونید یک تابع به صورت public تعریف کنید و از اون در هر قسمت برنامه که خاستید استفاده کنید .

کلاس مورد نظر شما به صورت زیر است .

class Class1
    {
        public void Namdelkhah(System.Windows.Forms.TextBox txt1, System.Windows.Forms.TextBox txt2, System.Windows.Forms.ListBox list)
        {
            var t1 = Convert.ToDecimal(txt1.Text);
            var t2 = Convert.ToDecimal(txt2.Text);
            while (t1 % 2 == 0 && t2 % 2 == 0)
            {
                list.Items.Clear();
                t1 /= 2;
                t2 /= 2;
                txt1.Text = t1.ToString();
                txt2.Text = t2.ToString();
            }
        }
    }

برای استفاده از این کلاس مبتونید از کد زیر استفاده کنید .

Class1 clas = new Class1();
            clas.Namdelkhah(textBox1,textBox2,listBox1);

 

دوست عزیز از یک مثال ساده تر کارتون رو شروع کنید . کنترل مقادیر در چند فرم با استفاده از کلاس اگه تا این حد اطلاعاتتون از thry - catch کار صحیحی نیست . بهتره برنامه نویسی رو از پایه شروع کنید . یه فیلم آموزش سی شارپ ببین ، اگه خیلی عجله دارین که یاد بگیرید فیلم های پروژه محور رو نگاه کنید و قدم به قدم باهاشون پیش برید میتونه بهتون کمک کنه enlightened

به هر حال اگه زیاد اسرار دارین این مثالو حل کنید یه ایمیل بدین من سورس برنامه رو براتون ارسال کنم

توسط (1,666 امتیاز) 8 21 78

با سلام کدی که دادید

  public void Namdelkhah(System.Windows.Forms.TextBox  textBox1, System.Windows.Forms.TextBox  textBox2, System.Windows.Forms.ListBox list)
        {

            
            
            try
            {
                Form2 f2 = Application.OpenForms.OfType<Form2>().ElementAt<Form2>(0);
                var t1 = Convert.ToDecimal(f2.textBox1.Text);

                var t2 = Convert.ToDecimal(f2.textBox2.Text);

                while (t1 % 2 == 0 && t2 % 2 == 0)
                {

                    list.Items.Clear();
                    t1 /= 2;
                    t2 /= 2;
                    f2.textBox1.Text = t1.ToString();
                    f2.textBox2.Text = t2.ToString();
                }
            }
              catch
            {
        }
 private void Form2_Load(object sender, EventArgs e)
        {
           Form1 f1 = Application.OpenForms.OfType<Form1>().ElementAt<Form1>(0);

          
           Class1 clas = new Class1();
           clas.Namdelkhah(textBox1, textBox2, listBox1);
           textBox1.Text = f1.textBox1.Text.ToString();
           
           textBox2.Text = f1.textBox2.Text.ToString();
        }
  private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                Form2 f2 = Application.OpenForms.OfType<Form2>().ElementAt<Form2>(0);
               
            }
            catch
            {
                Form2 frm = new Form2();
                frm.Show();
                Form2 f2 = Application.OpenForms.OfType<Form2>().ElementAt<Form2>(0);
                Class1 clas = new Class1();
                clas.Namdelkhah(f2.textBox1, f2.textBox2, listBox1);
                //f2.textBox1.Text = textBox1.Text.ToString();
                //f2.textBox2.Text = textBox2.Text.ToString();
            }

جواب داد ولی تو برنامه خودم جواب نمیده برنامه من به این صورت هست که یک  تکس باکس بنام textBox4 و یک باتن محاسبه و چند تا کمبو باکس و چک باکس تو فرم دوم دارم وقتی کاربر عدد وارد میکنه تو تکس باکس4 فرم دوم و مثلا چک باکس رو تیک میزنه و روی باتن محاسبه کلیک میکنم یه سری اعمال ریاضی انجام میشه و تو فرم 5 نمایش داده میشه تو تکس باکس 17 و 18 نمایش داده میشه

تو فرم 5 هم دو تکس باکس بنام textBox17 و textBox18 و یک ListBox4دارم که نتیجه رو تو تکس باکس 17 و 18 و لیست باکس4 نشون میده تا اینجا مشکل ندارم ولی بعنوان مثال اگه عدد نمایش داده شده در تکس باکس 17  8  و عدد تکس باکس 18 مثلا16 باشه میخوام تا جایی که میشه ساده بشه و در تکس باکس17 و 18 و لیست باکس نمایش داده بشه مثلا 1 و 2 نمایش داده بشه تا جایی که بر 2 یا 3 یا 4 تا8 بخش پذیر بود ساده بشه ممنون میشم همراه با کدنویسی راهنمایی بفرمایید امیدوارم منظورم رو رسونده باشم با تشکر ایمیل من daem1364@yahoo.com

توسط (148 امتیاز) 6 19
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,921 کاربر

دسته بندی ها

...