PDA

View Full Version : تغییر رنگ بک گراند فرم 1 از فرم 2



MostafaKhani
پنج شنبه 10 خرداد 1397, 19:26 عصر
سلام درود
چگونه میتونم بک کالر فرم 1 رو از فرم 2 تغیر بدم

//

فرم 1 ، فرم اصلیه برنامه هست و فرم 2 برای تغیر رنگ و تم که با کلیک برروی btn میخوام بک کالر فرم 1 هم تغیر پیدا کنه

ممنون میشم راهنمایی کنید
با تشکر

danialafshari
پنج شنبه 10 خرداد 1397, 21:25 عصر
با سلام
ورود شما را به سایت خیر مقدم عرض میکنم
به صورت ساده به شکل زیر هست
کد زیر رو برای فرم 1 و دکمه باز کردن فرم2 بنویسید:

//In form1 :
private void OpenForm2_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
if (frm2.ShowDialog() == DialogResult.OK)
{
this.BackColor = Form2.SelectedColor;
}
}

کد زیر رو هم در دکمه انتخاب رنگ فرم 2 بنویسید

//In form2:
public static Color SelectedColor;
private void button1_Click(object sender, EventArgs e)
{
SelectedColor = Color.Yellow;
DialogResult = System.Windows.Forms.DialogResult.OK;
}

به طور پیشفرض بکگراند فرم 1 رو به رنگ زرد عوض میکنه که میتونید از ColorDialog هم استفاده کنید و انتخاب رنگ رو به عهده کاربر بگذارید.
موفق باشید

MostafaKhani
پنج شنبه 10 خرداد 1397, 22:06 عصر
سلام درود مجدد
مشکل اینجاست که بنده از فرم استفاده نکردم
فرم اصلی روی حالت Form هست و بقیه که مثلا فرم تغیر رنگ رو حالت UserControl هست
اینکارو به این دلیل کردم که تب winform زیبایی جالبی نداره و خودم یه نوع تب ساختم با panel و UserControl
حالا مشکل در تغیر رنگ و تمش دارم که با این روشی که شما گفتید ShowDialog رو قبول نمیکنه

danialafshari
پنج شنبه 10 خرداد 1397, 22:42 عصر
درون دکمه ی تغییر رنگ UserControl کد زیر رو بنویس

Form1.ActiveForm.BackColor = Color.Yellow;

MostafaKhani
پنج شنبه 10 خرداد 1397, 23:58 عصر
ممنون جواب داد
حالا اگه بخوام بک کالر یک UserControl رو از یک UserControl دیگه ای تغیر بدم چه کدی باید بزنم

danialafshari
جمعه 11 خرداد 1397, 00:38 صبح
خواهش میکنم
ببینید اگر شما میخواید با باز کردن هر فرم رنگش رو هم به عنوان پارامتر ارسال و تغییر بدید کار اشتباهیه
درستش این هست که توی یک قسمت از برنامه رنگ رو تعیین کنید و در جایی مثل Settings.Settings (http://barnamenevis.org/showthread.php?454164-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-Setting-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE) و... ذخیره کنید و در سازنده (Constructor) فرم یا UserControl اون تنظیمات رو بخونی و اعمال کنی
اینطور در صورت بستن فرم اون تغییرات میمونن
اگر هم نمیخوای بمونن میتونید از کلاس ها ، پراپرتی و فیلد ها استفاده کنید
موفق باشید