PDA

View Full Version : مقاله: سفارشی کردن اندازه فرم



hamid_200611
چهارشنبه 12 فروردین 1388, 08:47 صبح
سلام.
اگر دقت کرده باشید در خیلی از برنامه ها وقتی یه فرم را باز می کنیم و اندازه اونو تغییر می دیم مثلا کوچیک و بزرگش می کنیم وقتی برنامه رو می بندیم و دفعه بعد بازش می کنیم می بینیم اندازه اون به اندازه ای که ما دفعه قبل تغییر دادیم .حالا من با استفاده از رجیستری روش کارو می گم اومیدوارم مفید باشه:خجالت:
خوب داخل یه کلاس دیگه یه متغییر از نوع استاتیک و دوتا تابع از نوع استاتیک می سازم چرا داخل کلاس ای خارج از فرم چون شاید من 40 فرم تو برنامم داشته باشم می خواهم این خاصیت و به همه اونا بدم و از زیاده نویسی جلوگیری کنم من اسم این کلاس را FormLocation گزاشتم.
public class FormLocation
{
public static string RegPath = @"Software\App\";
public static void SaveSize(System.Windows.Forms.Form frm)
{
RegistryKey key;
key = Registry.LocalMachine.CreateSubKey(RegPath+frm.Nam e);
key.SetValue("Height",frm.Height);
key.SetValue("Width",frm.Width);
key.SetValue("Left",frm.Left);
key.SetValue("Top",frm.Top);
}
public static void SetSize(System.Windows.Forms.Form frm)
{
RegistryKey key;
key = Registry.LocalMachine.OpenSubKey(RegPath+frm.Name) ;
if (key!=null)
{
frm.Height = (int)key.GetValue("Height");
frm.Width = (int)key.GetValue("Width");
frm.Left = (int)key.GetValue("Left");
frm.Top = (int)key.GetValue("Top");


}
}
}
خوب حالا در فرمی که می خوام این خاصیت رو داشته باشه در لود فرم متدSetSize رو صدا می زنم و در رویداد Closeingمتد SaveSize رو صدا می زنم.
private void Form1_Load(object sender, EventArgs e)
{
FormLocation.SetSize(this);
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
FormLocation.SaveSize(this);
}
اومیدوارم مفید بوده باشه.قصد دارم ماکزیمم و مینیمم بودن فرم رو هم با استفاده از API بگم.