PDA

View Full Version : مبتدی: این کد یعنی چی؟



rroona
شنبه 08 اسفند 1388, 19:07 عصر
ممکنه در مورد این کد توضیح بدین

private Rectangle RcDraw;
private float PenWidth = 5;
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Determine the initial rectangle coordinates...
RcDraw.X = e.X;
RcDraw.Y = e.Y;

}
private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Determine the width and height of the rectangle...
if(e.X < RcDraw.X)
{
RcDraw.Width = RcDraw.X - e.X;
RcDraw.X = e.X;
}
else
{
RcDraw.Width = e.X - RcDraw.X;
}
if(e.Y < RcDraw.Y)
{
RcDraw.Height = RcDraw.Y - e.Y;
RcDraw.Y = e.Y;
}
else
{
RcDraw.Height = e.Y - RcDraw.Y;
}
// Force a repaint of the region occupied by the rectangle...
this.Invalidate(RcDraw);

}
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
// Draw the rectangle...
e.Graphics.DrawRectangle(new Pen(Color.Blue, PenWidth), RcDraw);

}
من از پارامتر e چیزی نفهمیدم
ممنون

SMRAH1
شنبه 08 اسفند 1388, 19:26 عصر
سلام
این متد ها (MouseUp،MouseDownو Paint) ،همگی رویداد هستند.هر رویداد دارای دو پارامتر است :
1) پارمتر اول از نوع Object که فرستنده رویداد رو مشخص می کند (دقیقا مشخص می کند که این رویداد برای کدام شی رخ داده است چون ممکن است شما یک متد رویداد رو برای چند شی تخصیص داده باشید).
2) پارامتر دوم که یک شی از نوع EventArgs یا از مشتقات این کلاس است،اطلاعات تکمیلی در مورد رویداد به دست می دهد.در این متد ها (همانطور که در تعریف کد بالا آمده است)،این شی را به نام e نامگذاری کرده اند.
موفق باشید

rroona
شنبه 08 اسفند 1388, 19:36 عصر
ممنون
میشه اینم توضیح بدی


RcDraw.X = e.X;
RcDraw.Y = e.Y;

مقدار اولیه e چی هست؟

SMRAH1
شنبه 08 اسفند 1388, 19:59 عصر
سلام
دوست من ،توضیح دادم که وقتی یک رویداد اجرا می شود(یا اصطلاحا fire می شود)،فراخوان این رویداد،خودش پارامتر ها را مقدار دهی می کند.
در قسمتی که شما خواستید،e از نوع MouseEventArgs است.در نتیجه به این مفهوم است که اطلاعاتی درمورد Mouse در اختیارتان می گذارد.برای اینکه در مورد این کلاس بیشتر بدانید،می توانید به MSDN مراجعه کنید یا در محیط Visual Studio از منوی View گزینه Object Broser رو زده و در صفحه ای که باز می شود کلاس MouseEventArgs رو جستجو کنید.
مثلا دو پارامتر X و Y به ترتیب مکان افقی و عمودی نقطه ای را نشان می دهند که رویداد مورد نظر برای موس رخ داده است (یا همان مکان موس)
موفق باشید