تبليغاتX
جادوي سي شارپ
دوست عزیزی ایمیل فرستاده بود و سوالاتی پرسیده بود. سوالات به همراه جوابشون:

نحوه پر کردن داخل اشکال بسته:

برای پر کردن داخل اشکال بسته از متدهای Fill کلاس Graphics استفاده می کنیم. این متدها عبارتند از:
FillClosedCurve ، FillEllipse، FillPath، FillPie، FillPolygon، FillRectangle، FillRectangles، FillRegion
از اسم هر کدوم از متدها پیداست که برای پر کردن داخل هر شکل از کدومشون باید استفاده کنیم.

نحوه باز کردن فایلهای CHM:

برای استفاده از فایلهای chm در C# باید از کلاس Help استفاده کنید. به کد زیر توجه کنید:

Help.ShowHelp(this, @"D:\Ebooks\IntroducingMicrosoftASP.NET AJAX.chm");

رسم دوباره اشکال:

اینکه چرا برنامه شما اشکال رسم شده رو بعد از Minimize نمی تونه رسم کنه، می تونه دلایل زیادی داشته باشه و بستگی به نحوه کد نویسی شما داره. هر زمان که ویندوز احساس کنه یک پنجره یا قسمتی از یک پنجره نیاز به رسم مجدد داره، اونو رسم می کنه و برای رسم اون کد رویداد Paint اون شی فراخوانی میشه. در صورتی که در گرداننده رویداد Paint کدهای لازم نوشته نشده باشه توانایی رسم مجدد اونها وجود نخواهد داشت.

فولدر App_Code در ASP.NET :

این فولدر به منظور محلی برای ذخیره کلاسها ، فایلهای .wsdl و Typed dataset ها تعبیه شده است و تمام مواردی که نام برده شد اگر در این محل ذخیره شوند در تمام صفحات Solution فابل دسترسی هستند. نکته قابل توجه در مورد این فولدر اینست که وقتی چیزی را در این مکان قرار میدهید VS2005 خودکار آنرا تشخیص میدهد و به نوع دلخواه و مطلوب آنرا کامپایل میکند.
برای ایجاد این فولدر روی Solution کلیک راست کنید و Add folder=>App_code folder را انتخاب کنید. روی فولدر ایجادی نیز کلیک راست کرده و Add New Item را انتخاب کنید. در اینجا امکان انتخاب محدودی دارید بین فایلهایی از نوع کلاس ، متنی، دیتاست، گزارش و دیاگرام کلاس. برای مثال فایل کلاس را انتخاب کنید و نام آن را Calculator.cs بگذارید و در آن کد زیر را بنویسید :

Using system;
Public class Calculator
{
Public int Add (int a, int b)
{ Return (a+b); }
}

فقط آنرا ذخیره کنید و حالا میتوانید در هر صفحه ای از Solution از این کد استفاده کنید. مثلا یک صفحه .aspx بسازید و روی آن فقط یک Label بگذارید و در رویداد Page_Load آن کد زیر را بگذارید :

Protected void Page_Load (object sender, System.EventArgs e)

Calculator myCalc = new Calculator ();
Label1.Text = myCalc.Add (12, 12).Tostring ();
}

وقتی این صفحه .aspx را اجرا میکنید توجه کنید که از کلاس Calculator بدون هیچ مشکلی استفاده میکند و احتیاجی به کامپایل آن پیش از استفاده ندارد. در واقع درست پس از ذخیره این کلاس ، همزمان قابلیت IntelliSense در متدهایی که کلاس پوشش میدهد قابل استفاده است.
حال فولدر App_Code و کلاس Calculator را دوباره باز کنید و متدی به نام Subtract را با کد زیر به آن اضافه کنید:

Public int Subtract (int a, int b)
{
Return (a – b) ;
}

فایل را ذخیره کنید و به صفحه .aspx برگردید . توجه کنید که کلاس دوباره کامپایل شده و متد جدید نیز در صفحه از طریق IntelliSense قابل دسترسی است.
هر آنچه در این فولدر گذاشته شود در یک اسمبلی تک کامپایل میشود. فایلهای کلاسی که در این فولدر هستند لازم نیست یک زبان ویژه را بکار ببرند یعنی اگر حتی تمام صفحات با VB نوشته شوند ، کلاس Calculator در فولدر App_Code می تواند به زبان C# باشد. البته اگر چند کلاس به زبانهای مختلف می خواهید داشته باشید نباید همه آنها را در ریشه این فولدر و در کنار هم قرار دهید. برای اینکه قادر باشید مثلا دو زبانVB و C# را کنار هم قرار دهید باید تغییرات زیر را انجام دهید :
ابتدا در شاخه App_Code دو زیر شاخه جدید بسازید مثلا به نامهای VB و CS و کلاسهای موردنظرتان را در شاخه مربوطه قرار دهید.
                    \ App_Code 
               \ VB
        Add.vb
               \ CS
  Subtract.cs
سپس در Web.Config (که باید خودتان به Solution اضافه کنید) بخش را بصورت زیر تبدیل کنید :

  
     
     
  


حالا شما می توانید هر کدی را به این دو زبان بنویسید و در شاخه های مرتبط قرار دهید و البته لزوما این دو شاخه نباید VB و CS باشند.

در انتها دوباره از ققنوس عزیز سپاسگذارم .. جواب سوالهارو ایشون دادن... من فقط app_code folder رو نوشتم... بقیه اش تقصیر من نیس... :ی....

شاد باشین....
+ نوشته شده در  پنجشنبه بیست و پنجم مرداد 1386ساعت 0:21  توسط آتاناز  | 
سلام...

یک مقاله در مورد مقایسه استفاده از dataset و datareader ، در این پست براتون میذارم..

مثل همیشه امیدوارم مفید باشه... تشکر مخصوص از دوست عزیزم ققنوس که برای مقاله و تصحیح اون خیلی زحمت کشیدن ... ممنونم...

DataSet VS DataReader

شاد باشین...

+ نوشته شده در  سه شنبه دوم مرداد 1386ساعت 21:36  توسط آتاناز  |