یادگیری سی شارپ

saalek110

Well-Known Member
برای اینکه این تاپیک زیاد بزرگ نشود برای هر مبحث یک تاپیک باز می شود.

تاپیکها :

دیتابیس با سی شارپ.
xml با سی شارپ.
گرافیک در سی شارپ.
 
آخرین ویرایش:

saalek110

Well-Known Member
گرافیک در سی شارپ


در این تاپیک منظور ما استفاده از کلاسهای System.Drawing است.


همچنین در این تاپیک رویدادهایی را بررسی می کنیم. مثل رویداد paint .

همچنین چون اشکال ملموس تر است در این حوزه یعنی System.Drawing به دنبال افزایش مهارت خود در استفاده از کلاسهای دات هستیم. پس ممکن است خواندن این تاپیک قبل از تاپیکهای database و xml بسیار مفید باشد.
 
آخرین ویرایش:

saalek110

Well-Known Member
d1.gif


System.Diagnostics در سی شارپ

System.IO در سی شارپ
 
آخرین ویرایش:

saalek110

Well-Known Member
منبع:
http://www.aachp.ir/post.aspx?no=81
----------------------------------------------

حتما تا بحال به این نکته فکر کردین که چه جوری می شه یک کنترل رو در زمان اجرای برنامه با موس جابجا کرد. راه حلهای متفاوتی ممکنه وجود داشته باشه که یکی از اونها رو با هم بررسی می کنیم.

فرض کنید یک دکمه (button) روی فرم دارید که می خواید اونو در زمان اجرای برنامه - مثل زمان طراحی- به راحتی حرکت بدید. برای این کار بایستی از سه رویداد مربوط به موس برای دکمه کمک بگیرید. ابتدا سه متغیر در کلاس به صورت زیر تعریف کنید:
کد:
int xposition ;

int yPosition ;

bool isDraged ;
می دونید که چون این متغیر ها - و یا فیلد ها (چون به متغیر ها در کلاس فیلد و به توابع متد می گن) - در کلاس تعریف شدن، مقادیر اولیه اونها به این صورته:
کد:
xPosition = yPosition = 0 ;

isDraged = false ;
حالا اگه به شکل زیر توجه کنید متوجه همه چیز خواهید شد:

d2.gif

برای اینکه دکمه زا از حالت 1 به حالت 2 تغییر مکان بدید، باید اونو به اندازه پاره خط قرمز رنگ در راستای محور xها و به اندازه پاره خط آبی رنگ در راستای محور yها جایجا کنید. پس بایستی برای جابجا کردن دکمه در رویداد mouseMove مربوط به دکمه این دو مقدار - یعنی طول پاره خط های قرمز و آبی رنگ - رو به دست آورده، و به ترتیب با خواص left و top مربوط به دکمه جمع بزنید.

برای محاسبه این مقادیر به این صورت عمل کنید: ابتدا در رویداد mouseDown محلی رو که دکمه کلیک شده بدست آورده، و مختصات x و y رو به ترتیب به متغیرهای xPosition و yPosition نسبت بدید. یعنی:


کد:
private void btnMoveable_MouseDown ( object sender , MouseEventArgs e )

{

 xPosition = e.X ;

 yPosition = e.Y ;

 isDraged = true ;

 this.Cursor = Cursors.SizeAll ;

}


دو خط اول این کد مختصات x و y کورسر را در متغیر های xPosition و yPosition ذخیره می کنن. کاربرد کد خط سوم را کمی بعد متوجه می شید. خط آخر هم که شکل کورسر را به شکل sizeAll درمی یاره، که در اعمال درگ کردن (Draging) معمولا اونو مشاهده می کنید.

حالا در رویداد mouseMove کدهای زیر رو بنویسید:


کد:
private void btnMoveable_MouseMove ( object sender , MouseEventArgs e )

{

 if (isDraged)

 {

  btnMoveable.Left = btnMoveable.Left + e.X - xPosition ;

  btnMoveable.Top = btnMoveable.Top + e.Y - yPosition ;

 }

}
در کدهای بالا مقادیر e.X – xPosition و e.Y – yPosition به ترتیب طول پاره خط های قرمز رنگ و آبی رنگ هستن. حتما حدس زدید که از متغیر isDraged به چه منظوری استفاده شده. از این متغیر برای تشخیص فشار داده شدن کلید استفاده می شه. ما تنها زمانی مجاز به جرکت دادن دکمه هستیم که اونو در حالت فشار دادن نگه داشته باشیم. در رویداد mouseDown - که در بالا دیدید - مقدار متغیر isDraged را true کردیم، و در رویداد mouseMove چک کردیم که اگه متغیر true بود مختصات جدید دکمه را بدست بیاریم.

آخرین عملی که باید انجام بدید اینه که مشخص کنید چه زمانی عمل انتقال تمام شده، برای این کار از رویداد mouseUp استفاده می کنیم:


کد:
private void btnMoveable_MouseUp ( object sender , MouseEventArgs e )

{

 isDraged = false ;

 this.Cursor = Cursors.Default ;

}


خط اول مقدار isDraged رو false می کنه تا نشون بده که کلبد فشار داده نشده. خط دوم هم برای اینه که شکل کورسر رو به حالت پیش فرض دربیاره.

به نکات زیر توجه کنید:
این روش برای تمامی آبجکت هایی که دارای سه رویداد فوق باشن قابل پیاده سازیه.
همونطور که در اول مطلب توضیح داده شد به روش های مختلفی می شه این کار رو انجام داد، که این روش یکی از اونهاست.
اگه خواستید کد رو کاملتر کنید بایستی اونو طوری تغییر بدید که محدوده حرکت دکمه رو هم کنترل کنه.
سورس کامل و دموی برنامه را هم می تونید از اینجا دانلود کنید.
 

khengool

New Member
نحوه ساخت dll

سلام,واقعا دستتون درد نکنه.میشه راجع به نحوه ی ساختن و استفاده کردن از dll در #C هم توضیح بدید و اگه منبعی داره معرفی کنید
ممنون
 

جدیدترین ارسال ها

بالا