PDA

View Full Version : سوال: ذخیره ی اندازه ی فرم ها ...



ModernEX
پنج شنبه 26 مرداد 1391, 15:41 عصر
سلام بچه ها یه سوال ...
چطوری اندازه ی فرم های برنامه هامو ذخیره کنم ...؟
یعنی مثل کروم و فایر فاکس و ... که وقتی پنجره ی نمایش این برنامه ها رو تغییر میدی اندازشون برای دفعات بعدی که از برنامه استفاده میکنیم ثابت هستند ...
میدونم با رجستری میشه اما داخل ریجستری چطوری سایز رو ذخیره کنم ...
راه دیگه ای بجز ریجستری هست ...؟

amir4015
پنج شنبه 26 مرداد 1391, 16:04 عصر
سلام سايز رو داخل يك فايل متني همراه برنامت قرار بده و هر بار مقدار جديد رو داخل اون قرار بده

veniz2008
پنج شنبه 26 مرداد 1391, 16:26 عصر
سلام. بهترین روش استفاده از setting هست. میتونی اندازه و رنگ و ... رو برای دفعات بعد ذخیره کنی.

ModernEX
پنج شنبه 26 مرداد 1391, 16:26 عصر
سلام سايز رو داخل يك فايل متني همراه برنامت قرار بده و هر بار مقدار جديد رو داخل اون قرار بده

درسته میشه این کار رو کرد ولی من میخوام قابل دیدن نباشه ...
من با ریجستری این کار رو میکنم ولی سایز به صورت (128و22) ذخیره میشه در صورتی که باید به صورت 22 یا 128 ذخیره بشه ...یعنی ...
چیکار کنم ....؟!

ModernEX
پنج شنبه 26 مرداد 1391, 16:27 عصر
سلام سايز رو داخل يك فايل متني همراه برنامت قرار بده و هر بار مقدار جديد رو داخل اون قرار بده

درسته میشه این کار رو کرد ولی من میخوام قابل دیدن نباشه ...
من با ریجستری این کار رو میکنم ولی سایز به صورت (128و22) ذخیره میشه در صورتی که باید به صورت 22 یا 128 ذخیره بشه ...یعنی ...
چیکار کنم ....؟!

ali_habibi1384
پنج شنبه 26 مرداد 1391, 16:33 عصر
بايد واسه هر مولفه و هر فرم در ديتابيس فيلد ايجاد كني و موقع لود شدن اونو بخوني .روش ديگه بنظرم نميرسه

veniz2008
پنج شنبه 26 مرداد 1391, 16:51 عصر
روی منوی project از ویژوال کلیک کن و خصوصیت پروژه رو کلیک کن.(اسم پروژه من test هست واسه من میشه: test properties ). حالا از سمت چپ گزینه settings رو انتخاب و یک متغیر با نام formsize و از نوع system.Drawing.Size رو انتخاب کن. حالا در رویداد FormClosing کدهای زیر رو بنویس:

Properties.Settings.Default.formsize = this.Size;
Properties.Settings.Default.Save();
در formLoad هم کد زیر رو قرار بده :

this.Size = Properties.Settings.Default.formsize;
موفق باشی دوست من.

ali_habibi1384
پنج شنبه 26 مرداد 1391, 16:57 عصر
روی منوی project از ویژوال کلیک کن و خصوصیت پروژه رو کلیک کن. از سمت چپ گزینه settings رو انتخاب و یک متغیر با نام formsize و از نوع system.Drawing.Size رو انتخاب کن.
اينايي رو كه ميگي توي ويژوال چنده مال من 2010 نداره!

veniz2008
پنج شنبه 26 مرداد 1391, 17:06 عصر
اينايي رو كه ميگي توي ويژوال چنده مال من 2010 نداره!
هم 2005 داره هم 2008 و هم 2010. یه عکس میزارم تا مسیر رو متوجه بشید:
91360

tooraj_azizi_1035
پنج شنبه 26 مرداد 1391, 17:26 عصر
دقیقاً همون چیزی که میخوای:
http://www.codeproject.com/Articles/15013/Windows-Forms-User-Settings-in-C

ModernEX
پنج شنبه 26 مرداد 1391, 18:20 عصر
مرسی از همه ....
من فکر کردم این تایپیک مثل همهی تایپیک ها بی جواب میمونه واسه همین خودم دست به کار شدم و تو 10 دقیقه این کد رو نوشتم
البته کد mohammaddou عزیز خیلی کم تر هست ولی این یکی Location پنجره ی شما رو هم نگه میداره ...
برای استفاده باید کلید های ریجستری رو بسازید ...

از mohammaddou عزیز درخواست دارم اگه میشه کد بقیهی متغیر های بخش Settings رو هم برامون بزاره ...


اینم از کد ...


private void Form_FormClosed(object sender, FormClosedEventArgs e)
{
using (RegistryKey SSize = Registry.CurrentUser.OpenSubKey(@"Software\Form\", true))
{
string W = this.Size.Width.ToString();
string H = this.Size.Height.ToString();
string X = this.Location.X.ToString();
string Y = this.Location.Y.ToString();
SSize.SetValue("W", W, RegistryValueKind.String);
SSize.SetValue("H", H, RegistryValueKind.String);
SSize.SetValue("X", X, RegistryValueKind.String);
SSize.SetValue("Y", Y, RegistryValueKind.String);
}
}

private void Form_Load(object sender, EventArgs e)
{
using (RegistryKey SSize = Registry.CurrentUser.OpenSubKey(@"Software\Form\", true))
{
object WHome = SSize.GetValue("W");
object HHome = SSize.GetValue("H");
object XHome = SSize.GetValue("X");
object YHome = SSize.GetValue("Y");
int W = Convert.ToInt32(WHome);
int H = Convert.ToInt32(HHome);
int X = Convert.ToInt32(XHome);
int Y = Convert.ToInt32(YHome);
this.Size = new Size(W, H);
this.Location = new Point(X,Y);
}
}

Farshid007
جمعه 27 مرداد 1391, 12:55 عصر
بايد واسه هر مولفه و هر فرم در ديتابيس فيلد ايجاد كني و موقع لود شدن اونو بخوني .روش ديگه بنظرم نميرسه
داش علی حالت خوبه؟:متعجب:
دو تا عدد می خواهی سیو کنی ها!!!!!!!!!!
بابا تو Setiting.Setting ذخیره کن دیگه!

homan1374
جمعه 27 مرداد 1391, 13:32 عصر
معقولترین راه Settings هست
من در پروژه های بسیاری نه تنها اندازه فرم ک رنگ زمینه رو هم تو همین Settings ذخیره میکردم!

Farshid007
جمعه 27 مرداد 1391, 15:52 عصر
معقولترین راه Settings هست
من در پروژه های بسیاری نه تنها اندازه فرم ک رنگ زمینه رو هم تو همین Settings ذخیره میکردم!
قربون ادم چیز فهم!
بابا ریجستر پیجستر دیگه چیه؟؟؟؟؟؟