PDA

View Full Version : جلوگیری از دستورات تکراری



Future
پنج شنبه 03 خرداد 1386, 06:56 صبح
سلام دوستان، من 20 تا فرم دارم که برای همه آنها یک عمل تکراری انجام میدهم.روی هر فرمم یک تایمر دارم که در موقع فراخوانی یک افکت اجرا میکنه و در تک تک فرمهام تکه کدهای مربوط به آن را می نویسم. حالا قصد دارم در یک کلاس متدی تعریف کنم که شامل این کد ها باشه و در فرمهام فقط متدها را صدا کنم. به نظر شما باید جکار کرد؟
با تشکر

کد :

public partial class Frm_LogIn_User : Form
{
public Frm_LogIn_User()
{
InitializeComponent();
}


private bool m_fadeInFlag;


protected override void OnLoad(EventArgs e)
{

base.OnLoad(e);

if (!DesignMode)
{

m_fadeInFlag = true;
Opacity = 0;

m_fadeInOutTimer.Enabled = true;

}

}

private void m_fadeInOutTimer_Tick(object sender,EventArgs e)
{
if (m_fadeInFlag == false)
{
Opacity -= (m_fadeInOutTimer.Interval / 1000.0);

if (this.Opacity > 0)
m_fadeInOutTimer.Enabled = true;
else
{
m_fadeInOutTimer.Enabled = false;
Close();
}
}
else
{
Opacity += (m_fadeInOutTimer.Interval / 1000.0);
m_fadeInOutTimer.Enabled = (Opacity < 1.0);
m_fadeInFlag = (Opacity < 1.0);
}
}
private void _DoNothing() { }
}
}

omid_Ahmadi
پنج شنبه 03 خرداد 1386, 07:01 صبح
اولاً مجدداً کدتون قابل خوندن نیست، از تگ [code] استفاده کنید.

دوماً می تونید کلاس رو تعریف کرده، متد رو در اون پیاده سازی کنید (یا استاتیک یا معمولی) و بعد در هر فرم استفاده کنید.

Future
پنج شنبه 03 خرداد 1386, 07:05 صبح
سلام، راستش منظورتون از تگ را نفهمیدم لذا در یک فایل کد را نوشتم

omid_Ahmadi
پنج شنبه 03 خرداد 1386, 07:14 صبح
استفاده از تگ یعنی نوشتن یک [code] و [\code]، و قرار دادن کدها در اون (باید از اسلش به جای بک اسلش استفاده کنید).
فکر نکنم نیازی به کد باشه، می تونید از پاسخ پست 2 استفاده کنید. در صورتی که قابل استفاده نیست، دلیل رو واضحتر توضیح بدید.

موفق باشید.

once4ever
پنج شنبه 03 خرداد 1386, 07:46 صبح
اگه میخوای کدی رو تو پستت بنویسی, برو به حالت "حالت پیشرفته" و روی منوی ابزار از http://www.barnamenevis.org/forum/images/editor/code.gif استفاده کن و کد رو بین تگهای [code][ /code ] بنویس

Future
پنج شنبه 03 خرداد 1386, 07:50 صبح
مشکل من اینه که به آبجکتم دسترسی ندارم.

once4ever
پنج شنبه 03 خرداد 1386, 07:54 صبح
ببین اگه یه کلاس داری که چندتا متد داره (public or static) و نو فرمهات میخوای استفاده کنی, باید از اون کلاس یه شی (تو هر فرمی) تعریف کنی و به راحتی کار کنی!!

Sorenaa_s
پنج شنبه 03 خرداد 1386, 09:12 صبح
بهتره از وراثت استفاده کنید. یک کلاس از فرم ارث ببرید، اون چند تا متد تکراری رو توش اجرا کنید، بعدا ما بقی فرمها رو از این فرم ارث ببرید.



public class MyForm: Form
{
public MyForm()
{
}
public int DoWork
{
return 5;
}
}

public class Form1: MyForm
{
public Form1()
{
}
}