تبليغاتX
آموزش سي شارپ و برنامه نويسي شي گراء

آموزش سي شارپ و برنامه نويسي شي گراء

آموزش سي شارپ توسط مسعود طباطبايي

سلام

بنا به درخواست گروهی از دوستان می خواهم یک دوره آموزشی AJAX و jQuery برگزار کنم. دوستانی که تمایل به شرکت در دوره آموزشی را دارند. می توانند از طریق Masoud.TB@Gmail.com و یا قراردادن کامننت با من در ارتباط باشند. دوره آموزشی حدود 30 ساعت خواهد بود و سیلابس آن هم به شرح زیر است:

  • Introduction to AJAX
  •  HTML, CSS and Javascript Advanced Topics
  • Understanding JSON
  • Microsoft ASP .NET AJAX
  • Introduction to jQuery
  • Advanced jQuery Topics

ضمنا ، در طول دوره يک پروژه واقعی از پياده سازی یک نرم افزار تحت وب با استفاده از AJAX را خواهیم داشت. برای دوستانی که تمایل به پیاده سازی واقعی AJAX دارند این دوره را پیشنهاد می کنم.

موفق باشید.

+ نوشته شده در  یکشنبه سوم آبان 1388ساعت 12:30  توسط مسعود طباطبايي  | 

برای دوستانی که با فایل های Pdf راحت تر هستند و تمایل دارند که مطالب آموزشی این وبلاگ را به صورت فایل Pdf داشته باشند ، یک نسخه بروز رسانی شده از مطالب وبلاگم که حدود 105 صفحه A4 شده است ، را آماده کردم.

برای دانلود این فایل می توانید از طریق لینک زیر اقدام نمائید.

http://www.tabatabaei.info/csharpsamples/CSharpTutorial.pdf


فراموش نکنید که نظرات شما ، به بهبود این مطالب کمک میکنه!
موفق باشید.

+ نوشته شده در  سه شنبه بیست و هشتم مهر 1388ساعت 19:31  توسط مسعود طباطبايي  | 

سلام به همه دوستان ،

اول باید از همه دوستانی هم که پیام می دهند صمیمانه تشکر مي کنم. از اینکه مدتی است فرصت نکردم ، مجددا مطالب را به روز رسانی کنم ، معذرت می خواهم. امیدوارم که هرچه زودتر فرصتی بشه تا بازهم ادامه بدم.

ضمنا از دوستانی که تمایل به همکاری در پروژه های من (بیشتر حوزه ASP .NET و SharePoint ) را دارند دعوت کنم تا روزمه های کاری خودشون را برای من ایمیل کنند.

+ نوشته شده در  شنبه هجدهم مهر 1388ساعت 9:0  توسط مسعود طباطبايي  | 

باز كن پنجره‌ها را، كه نسیم

روز میلاد اقاقی‌ها را

جشن می‌گیرد،

و بهار،

روی هر شاخه، كنار هر برگ،

شمع روشن كرده است.


همه چلچله‌ها برگشتند،

و طراوت را فریاد زدند.

كوچه یك پارچه آواز شده است،

و درخت گیلاس،

هدیة جشن اقاقی‌ها را،

گل به دامن كرده است.


باز كن پنجره ها را ای دوست!

هیچ یادت هست،

كه زمین را عطشی وحشی سوخت؟

برگ‌ها پژمردند؟

تشنگی با جگر خاك چه كرد،

هیچ یادت هست،

توی تاریكی شب‌های بلند،

سیلی سرما با خاك چه كرد؟

با سر و سینة گل‌های سپید،

نیمه شب باد غضبناك چه كرد؟

هیچ یادت هست؟


حالیا معجزة باران را باور كن!

و سخاوت را در چشم چمن زار ببین!

و محبّت را در روح نسیم،

كه در این كوچة تنگ،

با همین دست تهی،

روز میلاد اقاقی‌ها را

جشن می‌گیرد.


خاك، جان یافته است.

تو چرا سنگ شدی؟

تو چرا این همه دلتنگ شدی؟

باز كن پنجره‌ها را ...

و بهاران را باور كن



نوروز بر همه دوستان مبارک باد. اميدوارم که در سال 88 همگي موفق و شاد باشيد.
+ نوشته شده در  پنجشنبه ششم فروردین 1388ساعت 12:17  توسط مسعود طباطبايي  | 

رويداد هاي فرم - Form Events

همانطور که قبلا صحبت شده بود تمامی فرم هایی که شما ایجاد می کنید از یک کلاس به نام System.Windows.Forms.Form به ارث رفته اند و در واقع فرم هایی که شما در محیط Visual Studio .NET ملاحظه می کنید کلاس هایی هستند که از کلاس Form به ارث رفته اند. در کلاس Form تعداد زیادی رویداد تعریف شده است که به شما امکان می دهد تا در مواقع مورد نظر اطلاعاتی در رابطه با اتفاقاتی که بر روی فرم شما می افتد داشته باشید.

رويداد  Form Load

اولین رویدادی که معمولا در فرم استفاده می شود (رویداد پیش فرض) رویداد Load می باشد. این رویداد دارای آرگونی از جنس EventArgs می باشد (که به این معناست که هیچ اطلاعات خاصی در رابطه با رویداد به شما نمی دهد). معمولا در مواقعی که شما می خواهید قبل از نمایش فرمتان یک سری کار را انجام دهید از این رویداد استفاده می کنید. برای استفاده از این رویداد کافی است که فرمتان را باز کنید (نمایش Visual) سپس بر روی فرم خود دوبار کلیک کنید. در این صورت یک متد به نام Form_Load در کد کلاس فرم شما ایجاد خواهد شد. تمامی کد هایی که در این متد نوشته شوند در موقع Load شدن فرم شما (قبل از نمایش) اتفاق خواهد افتاد. به عنوان مثال فرض کنید که شما یک فرم صدور فاکتور دارید. حالا موقع Load می خواهید که فرمتان اطلاعات قبلی ذخیره شده در بانک اطلاعاتی را خوانده و در یک GridView که در قسمت پایین فرم شما است نمایش دهد.

رويداد Form Closing

رویداد Form Closing زمانی رخ می دهد که درخواستی برای بستن فرم تان ارجاع شده باشد. چه این درخواست توسط کاربر با زدن کلید های Alt + F4 باشد(یا کلیک بر روی دکمه X) , چه از طریق کد و با فراخوانی Application.Exit یا this.Close و یا از هر طریق دیگر. این رویداد دارای آرگومانی از جنس FormClosingEventArgs می باشد که اطلاعاتی همچون منبع درخواست برای بسته شدن فرم (از طریق خاصیتی به نام CloseReason که از جنس یک enum به نام CloseReason) و خاصیتی به نام Cancel برای ممانعت از بسته شدن فرم می باشد.

فرض کنید که در یک فرم ورود اطلاعات فاکتور کاربر شما اقدام به ایجاد یک فاکتور جدید کرده است , اما در نهایت فراموش می کند که کلید ذخیره را بزند و بر روی دکمه بستن فرم کلیک می کند. حالا شما می توانید با چک کردن وضعیت فرمتان از طریق رویداد FormClosing و با استفاده از خصوصیت Cancel در صورت لزوم از بسته شدن فرمتان ممانعت به عمل آورید.

استفاده از MessageBox

گاهي اوقات در نرم افزارهاي تحت ويندوز براي نمايش اطلاعات از کلاس MessageBox استفاده مي کنيم. براي اين کار کافي است متد Show از کلاس MessageBox را صدا بزنيم و پارامترهاي لازمش را مهيا کنيم. متد Show در کلاس MessageBox داراي چندين overload مي باشد. در مثال بالا من ابتدا پيغام هشداري که مي خواهم نمايش دهم را نويشتم و سپس عنوان پيغام را مشخص کردم . بعد کليد هايي که بايد نمايش دهند را از طريق يک enum به نام MessageBoxButton مشخص کردم ، سپس آيکون مورد نظر را انتخاب کردم (MessageBoxIcon) و در نهايت کليد پيش فرض را مشخص کنيد.

دقت کنيد که انتخاب کليد پيش فرض در خيلي از مواقع حياتي است. مثلا شما قبل از حذف يک رکود بيا مانند مثال قبل موقع بسته شدن فرمتان با استفاده از MessageBox يک تاييديه از کاربر مي خواهيد:

البته مي توانيد با پاس کردن MessageBoxOption.RtlReading و همينطور MessageBoxOption.RightAlign امکان نمايش متون فارسي را از راست به چپ داشته باشيد.

در بيشتر موارد کاربران شما بدون توجه به متن MessageBox با زدن کليد Enter از شرٍ MessageBox خلاص مي شوند. پس من به صورت پيش فرض کليد دوم يعني No  را انتخاب مي کنم که اگر Enter را کليک کرد ، رکورد حذف نشود و در صورتي که کاربر صراحتاَ کليد Yes را فشرد ، آن وقت رکورد را حذف مي کنم.

نکته اي که نبايد فراموش کنيد اين است که متد Show در کلاس MessageBox يک خروجي از جنس DialogResult به شما مي دهد. در نتيجه شما مي توانيد تشخيص دهيد که بعد از نمايش MessageBox کاربر شما کدام گزينه را انتخاب کرده و در مقابل آن عکس العمل مناسب را انجام دهيد.

کلاس فرم داراي رويداد هاي بسياري است ، که در حوصله اين سري آموزشي نيست اما در پست بعدي به چند رويداد مهم ديگر اين کلاس خواهيم پرداخت.

ادامه دارد...

+ نوشته شده در  پنجشنبه پانزدهم اسفند 1387ساعت 7:46  توسط مسعود طباطبايي  | 

خصوصيات کلاس فرم - Form Properties

بعد از شناخت ساختار هريک از فرم ها در سي شارپ ، به بررسي خصوصيات مهم کلاس فرم مي پردازيم. وقتي شما يک فرم ايجاد مي کنيد ، براي فرمتان يک اسم مشخص مي کنيد ، اين اسم از طريق پنجره Properties و خصوصيت Name قابل دسترسي است. توجه داشته باشيد که اسامي به صورت پيش فرض با Form1 ، Form2 و .... ساخته مي شوند. براي مثال من اسم فرم اصلي خودم را به frmMain تغيير مي دهم. (پيشنهاد مي کنم در نام گذاري فرم هايتان يک قانون خاص را رعايت کنيد. به عنوان مثال من اسامي فرم ها را با frm شروع مي کنم و بعد اسم فرمم را ذکر مي کنم. استفاده از يک فرمول شبيه به اين خوانايي کد شما را بالا مي برد.)

خوب شما در تمامي فرم ها (به صورت پيش فرض) يک متن را در قسمت بالا سمت چپ به صورت عنوان فرم مي بينيد. براي مشخص کردن عنوان فرم خود از خصوصيت Text استفاده کنيد. خصوصيات ControlBox براي نمايش يا عدم نمايش Icon ، کليد بيشينه ، کليد کمينه و کليد بستن فرم استفاده مي شود. البته شما مي توانيد نمايش يا عدم نمايش کليد هاي بيشينه و کمينه را با استفاده از خصوصيات MaximizeBox و MinimizeBox کنترل کنيد. همچينين نمايش يا عدم نمايش آيکون فرم را با استفاده از گزينه ShowIcon مشخص کنيد. ضمنا با استفاده از گزينه Icon مي توانيد آيکون فرمتان را مشخص کنيد. همچنين با استفاده از گزينه ShowInTaskBar مي توانيد مشخص کنيد که فرم شما در TaskBar ويندوز نمايش داده شود يا خير.

خصوصيت BackColor و ForeColor براي مشخص کردن رنگ پس زمينه فرم و رنگ متون فرم استفاده مي شوند. خصوصيات BackgroundImage و BackgroundImageLayout براي مشخص کردن تصوير پس زمينه فرم و همينطور نحوه نمايش تصوير پس زمينه استفاده مي شود. به عنوان مثال اگر تصوير پس زمينه شما کوچکتر از اندازه فرم شما باشد. شما مي توانيد با مشخص کردن مقدار Tile يا Stretch براي BackgroundImageLayout اندازه تصوير را با فرمتان مطابقت دهيد. در حالت Tile تصوير شما به تعداد لازم بر روي صفحه تکرار خواهد شد و در حالت Stretch تصوير شما به اندازه فرمتان کش داده خواهد شد.


با استفاده از گزينه Size مي توانيد اندازه فرمتان را مشخص کنيد. همچنين مي توانيد با استفاده از خصوصيت WindowState وضعيت اندازه فرمتان را مشخص نماييد. مقادير Normal ، Minimize و Maximized را مي توانيد استفاده کنيد. در صورتيکه مقدار اين خصوصيت را Maximize يا Minimized ست کنيد خصوصيت Size شما اثر نخواهد کرد.

گزينه StartPosition مي توانيد محل  باز شدن فرمتان را مشخص نمائيد. در صورتيکه مقدار اين خصوصيت را به Manual ست کنيد مي توانيد با استفاده از خصوصيت Location محل نمايش فرم را به صورت X,Y مشخص کنيد.  يا اينکه با استفاده از مقادير CenterScreen يا CenterParent فرمتان را در وسط صفحه نمايش يا وسط فرم پدر نمايش دهيد. مقادير WindowsDefaultBound و WindowsDefaultLocation در محل پيش فرض پنجره در ويندوز مي باشند با اين تفاوت که وقتي مقدار بر روي WindowsDefaultBound ست شده باشد اندازه فرمتان نيز به اندازه پيش فرض Windows تغيير خواهد کرد.


فرم خصوصيات بسيار ديگري دارند که در پست هاي بعدي توضيح خواهم داد. در پست آينده به رويداد هاي فرم ها مي پردازيم. ادامه دارد...

+ نوشته شده در  جمعه نهم اسفند 1387ساعت 10:29  توسط مسعود طباطبايي  |