ارتباط چند فرم با یکدیگر در #c

mahtab2009

Member
سلام
من در مورد ارتباط چند فرم با هم دیگه مشکل دارم. توی فرم اصلی که طراحی کردم چند تا دکمه هست که با کلیک روی آنها فرم دیگه ای باز میشه(عکسهای زیر)
این فرم ها مربوط به اضافه کردن متن و تغییر سایز و چرخش یه PictureBox توی فرم 1 هست.
اگه بخوام کدها رو توی قسمت کدنویسی هر کدوم از فرمهای 2 تا 4 بنویسم آبجکتهای فرم 1 ناشناخته اند و نمی تونم خصوصیاتشون رو تغییر بدم، اگه هم بخوام تمام کدها رو توی همون فرم 1 بنویسم همین مشکل رو در مورد فرمهای دیگه دارم.
چه جوری میشه مثلا بگم اکه مقدار فلان TextBox عوض شد عرض PictureBox فرم 1 عوض بشه یا بچرخه یا ...
در مورد اضافه کردن متن هم مشکل دارم، نمی دونم چه جوری وقتی توی فرم متن، فونت و متنم رو نوشتم با زدن OK اون رو به PictureBox منتقل کنم؟؟
لطفا راهنمایی کنید. بسیار ممنون
 

پیوست ها

  • Capture1.PNG
    Capture1.PNG
    13.2 کیلوبایت · بازدیدها: 4
  • Capture2.PNG
    Capture2.PNG
    13.2 کیلوبایت · بازدیدها: 3
  • Capture3.PNG
    Capture3.PNG
    7.9 کیلوبایت · بازدیدها: 3

SajadCG

کاربر فعال
برای اینکه به اون ابجکت های توی فرم دیگه دسترسی داشته باشد
باید در قسمت پروپرتیس ابجکت modifiers را روی public قرار بدید
و برای دسترسی بهش باید یه نمونه از فرمتون بسازید و بعد به راحتی میتونید بهش دسترسی داشته باشید.
مثل:
;()Form1 frm = new Form1
;"frm.textBox1.Text = "test
 
آخرین ویرایش:

mahtab2009

Member
سلام
ممنون. همه مشکل این بود که یادم رفته بود public تعریف کنم.
خیلی خیلی متشکرم. :rose:
 

masoudnt

Member
آقا این کد رو امتحان کردم اصلا کار نمیکنه خطا هم نمیگیره !!:-?
 

SajadCG

کاربر فعال
آقا این کد رو امتحان کردم اصلا کار نمیکنه خطا هم نمیگیره !!:-?

اگه مراحلی که گفتم را کامل انجام بدید جواب میده .
یک بار کامل برنامه تون Trace کنید و اگه بازم مشکلتو پا برجا بود
درستوراتتون را بزارید تا ببینم مشکل از کجاست.

موفق باشید.
 

masoudnt

Member
نمونه کد رو پیوست کردم لطفاً اشکالاتش رو بگیرید
 

پیوست ها

  • form.zip
    22 کیلوبایت · بازدیدها: 7

the_king

مدیرکل انجمن
نمونه کد رو پیوست کردم لطفاً اشکالاتش رو بگیرید

form edited.zip

کد Program.cs و Form2.cs را ببینید :

کد:
    static class Program
    {

[B][COLOR="Blue"]        public static Form1 f1;[/COLOR][/B]

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]

        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
[B][COLOR="Blue"]            f1 = new Form1();
            Application.Run(f1);[/COLOR][/B]
        }
    }

کد:
        private void button1_Click(object sender, EventArgs e)
        {
[B][COLOR="Blue"]            textBox1.Text = Program.f1.textBox1.Text;[/COLOR][/B]
           
        }
 

پیوست ها

  • form edited.zip
    45.4 کیلوبایت · بازدیدها: 6

bitaroos

Member
سلام
مشکل mahtab2009 با مشکل شما فرق داره و از این روش نمی تونید استفاده کنید. (البته بعد از دیدن کد هاتون متوجه شدم)
یا مثل این تاپیک که ناظم انجمن تو ضیح دادن باید عمل کنید و یا مثل مثال پیوست:

توضیح مثال پیوست:

  • اول یه کلاس استااستاتیک با نام bridge ساختم
  • دوم موقع سویچ کردن به فرم 2 ، نوشته های داخل text box رو به درون متغیر استاتیکی که توی Bridge ساختم کپی کردم
  • سوم هم با فشردن دگمه موجود در فرم 2 ، اطلاعات ذخیره شده در کلاس Bridge رو به textBox موجود در فرم 2 انتقال دادم
چند تا روش دیگه هم هست.
 

پیوست ها

  • form.rar
    39.2 کیلوبایت · بازدیدها: 3

masoudnt

Member
ممنون از همه دوستان روش هاتون خیلی به دردم خورد.یک پی دی اف هم برای اتمام مبحث در رابطه با ارتباط فرم ها میذارم تا دوستان دیگه هم استفاده کنن.:rose:
 

پیوست ها

  • c# forms.zip
    244.8 کیلوبایت · بازدیدها: 14

جدیدترین ارسال ها

بالا