ايران ويج

نسخه‌ی کامل: تفاوت this و Form.ActiveForm (خيلي فورررررررررري)
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام خدمت اساتيد .
آقايون بنده سوالي در مورد فرم داشتم.
براي تغيير پراپرتي هاي يك فرم توي سي شارپ ميتونستيم از پنجره پراپرتيس و يكي ديگه هم توي كد نويسي با استفاده از this مثلا‌:
1

کد:
this.Hide(); يا this.BackColor=Colors.Red;


اما يك روش ديگه هم هست كه توي كلاس خود فرم ما هست مثل :
1

کد:
Form1.ActiveForm.BackColor=Color.Red;


خوب تفاوت اين سه روش چيه ؟
خواهشا سطحي توضيح نديد :| چون زياد سرچ كردم و همه ميگن ActiveForm واسه پنجره فعليه :|
آقا شما يه چي بهتر بگو لطفا :((
سلام.

خوب تو پراپرتی شما کد نمی زنید و در عوض خودکار کدش ایجاد می شه.
this هم که یه اشاره گر هست، چه از this چه از اسم کلاس و ... استفاده کنی تفاوت خاصی نداره. البته طبیعیه همه جا جای همدیگه نمی تونن استفاده بشن.
در کل هر جوری راحت تر هستید استفاده کنید ...
یه مقدار مفاهیم شیئ گرایی رو مرور کنید، متوجه می شید که مورد خاصی نیست ...!

موفق باشید.
ممنون ولي اون چيزي كه مد نظر منه چيزه ديگست.
تفاوت اين دو دستور در توانايي اونها براي تغيير مشخصات فرم نيست ،‌بلكه در نحوه يافتن هندل فرم مورد نظر است 

وقتي برنامه اي نوشتيد كه داراي چند فرم فرزند مي باشد و مي خواهيد به تايتل فرم فعال يك كلمه " در حال اجرا " اضافه نمائيد ، در اين صورت با استفاده از دستور Form.ActiveForm مي تونيد اون فرم را پيدا و تايتلش رو عوض كنيد.

اما اگر مي خواستيد اين كار را با دستور This انجام دهيد بايستي در واقعه OnActive همه فرم ها دستور تغيير تايتل فرم جاري را با استفاده از اين دستور قرار مي داديد.