PDA

View Full Version : سوال: طریقه ایجاد یک فرم سفارشی با ارث بری از فرمها برای انجام عملیات دلخواه



saeed410
شنبه 21 بهمن 1391, 03:55 صبح
سلام.فرض کنید دوتابع دارم که در تمام فرمهام از اونها استفاده می کنم. کار زیاد سختی نیست .هر وقت یک فرم جدید ایجاد میکنم کد توابع رو کپی می کنم و تو کلاس فرم پیست میکنم. ولی میخام اگه بشه فرم رو سفارشی کنم تا نیاز به کپی کردن کدها در تمام فرمها نداشته باشم. کد توابع به صورت زیر:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
try
{
if (msg.WParam.ToInt32() == (int)Keys.Escape)
{
this.Close();
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
}
catch (Exception Ex)
{
MessageBox.Show("Key Overrided Events Error:" + Ex.Message);
}
return base.ProcessCmdKey(ref msg, keyData);
}
protected override void WndProc(ref Message message)
{
const int WM_NCHITTEST = 0x0084;
const int HTCAPTION = 2;
const int SC_MOVE = 0xF010;
const int WM_NCLBUTTONDOWN = 0xA1;
const int WM_SYSCOMMAND = 0x112;

switch (message.Msg)
{
case WM_NCHITTEST:
return;
case WM_SYSCOMMAND:
if ((int)message.WParam == SC_MOVE)
return;
break;
case WM_NCLBUTTONDOWN:
if ((int)message.WParam == HTCAPTION)
return;
break;
}

base.WndProc(ref message);
}
یک تابع برای خروج با زدن کلید ESC و یک تابع برای عدم امکان حرکت فرم و عدم تغییر اندازه فرم هستش.

ferdin
شنبه 21 بهمن 1391, 04:53 صبح
سلام

شما می تونید یک بیس فرم داشته باشید که توابعتون رو تو اون تعریف کنید و یا هر تغییر دیگری که می خواهید ، بعد فرمهایی که به پروژتون اضافه می کنید به جایی که از Form ارثبری کنند از Base Form شما Inherit بشن .


public partial class Form1 : Form

public partial class Form1 : BaseForm