PDA

View Full Version : سوال: نبود بسیاری از Property های یک Object خاص در لیست هوشمند



aminpprog
دوشنبه 05 فروردین 1392, 11:16 صبح
سلام به دوستان عزیز :
یه سوال کوچیک داشتم ، می خواستم اگه امکانش هست راهنماییم کنین . :چشمک:

چرا وقتی در قسمت کد یک Object (مثلا خود فرم) اسم Object رو می نویسم و کاراکتر نقطه (.) را میذارم در لیست هوشمند خیلی از Property ها رو نمی بینم (مثلا StartPosition) ؟ :متفکر:
101857
http://barnamenevis.org/images/misc/pencil.png

veniz2008
دوشنبه 05 فروردین 1392, 11:44 صبح
سلام.
شما برای اینکه بتونید از Form1 که از نوع class هست استفاده کنید بایستی اونو در حافظه ایجاد کنید (یعنی new کنید و با این کار یک متغیر ازش ایجاد می کنید و بعد از اون میتونید به رویدادها و خصوصیات اون فرم دسترسی داشته باشید):

Form1 f1 = new Form1();
f1.StartPosition = FormStartPosition.CenterScreen;
ولی روش ساده تر اینه که از کلمه this استفاده کنید که مستقیما اشاره میکنه به فرم جاری (البته اگر درون شی دیگه ای نباشید). مثلا در رویداد formload مربوط به Form1 میتونید اینطور استفاده کنید :

this.StartPosition = FormStartPosition.CenterScreen;

aminpprog
دوشنبه 05 فروردین 1392, 12:04 عصر
خیلی ممنون دوست عزیز !

روشی دومی که گفتی رو امتحان کردم ، بدون خطا اجرا شد ولی عمل نکرد .

اما روشی اولی رو که گفتی ، خودش بهانه ای شد تا سوالی رو که همیشه دغدغم بود رو مطرح کنم :
آیا با ایجاد شی جدید از form1 این شیء تا پایان اجرای برنامه باقیه یا باید خودمون با دستور خاصی اونو Kill کنیم ؟ اگه باقیه آیا اگه در برنامه مون از دیتابیس استفاده کرده باشیم در Event های مختلف (Active - Load - Resize - ...) باعث آسیب رسانی به Database مون نمیشه ؟ اگه میشه چجوری باید اونو مهار کنیم ؟

در ضمن ببخشید یادم رفت بپرسم که کد ایجاد شیء جدید از form1 رو کجا باید بنویسم ؟

veniz2008
دوشنبه 05 فروردین 1392, 12:54 عصر
خیلی ممنون دوست عزیز !

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

public Form1()
{
InitializeComponent();
this.StartPosition = FormStartPosition.CenterScreen;
}


اما روشی اولی رو که گفتی ، خودش بهانه ای شد تا سوالی رو که همیشه دغدغم بود رو مطرح کنم :
آیا با ایجاد شی جدید از form1 این شیء تا پایان اجرای برنامه باقیه یا باید خودمون با دستور خاصی اونو Kill کنیم ؟ اگه باقیه آیا اگه در برنامه مون از دیتابیس استفاده کرده باشیم در Event های مختلف (Active - Load - Resize - ...) باعث آسیب رسانی به Database مون نمیشه ؟ اگه میشه چجوری باید اونو مهار کنیم ؟

عمر متغیری که از فرم ایحاد می کنید تا زمانی هست که اون فرم باز هست و به محض بستن اون فرم، بصورت اتوماتیک خودش از حافظه dispose میشه. پس نیازی نیست شما عمل kill کردن رو انجام بدید. در مورد آسیب رسانی به دیتابیس متوجه منظورتون نشدم. بیشتر توضیح بدید که چه جور آسیب رسانی؟.

در ضمن ببخشید یادم رفت بپرسم که کد ایجاد شیء جدید از form1 رو کجا باید بنویسم ؟
هر جایی که نیاز دارید میتونید بنویسید. مثلا در سازنده یا داخل یک دکمه.

aminpprog
دوشنبه 05 فروردین 1392, 17:36 عصر
دوست عزیز بسیار عذرخواهم از اینکه کمی دیر پاسختان را دادم (چون کمی کار برایم پیش آمد) !

مشکلم هم حل شد (البته بیشتر به دلیل اینکه راهنماییم کردید که دستور مذکور را در سازنده بنویسم ) .
در ضمن تشکر هم کردم !!!!!!! :لبخندساده: