صفحه 3 از 13 اولاول 12345 ... آخرآخر
نمایش نتایج 81 تا 120 از 533

نام تاپیک: 1001 نکته در سی شارپ

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    Cool نمایش تصاویر در Windows picture and fax viewer از طریق کدنویسی

    //Open with the 'Windows picture and fax viewer':
    System.Diagnostics.Process.Start(@"C:\Windows\syst em32\rundll32.exe "
    , @"C:\Windows\system32\shimgvw.dll,ImageView_Fullsc reen " + filename);


    اینهم که آسونه اما شاید واسه دوستانی مفید باشه :
    //Open with the 'Microsoft Paint':
    System.Diagnostics.Process.Start(@"C:\Windows\syst em32\MSPaint.exe "
    , filename);

  2. #2

    وادار کردن لیست باکس به اسکرول تا یک آیتم مشخص

    مثال - برای آخرین آیتم :

    // Set the TopIndex property of the ListBox to ensure the
    // most recently added items are visible.
    listBox1.TopIndex = listBox1.Items.Count - 1;
    listBox1.SelectedIndex = listBox1.Items.Count - 1;

  3. #3

    جابجا کردن فرم با کلیک بر روی هر قسمت از آن - بدون استفاده از توابع API

    private bool dragging;
    private Point pointClicked;
    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Left)
    {
    // Turn drag mode on and store the point clicked.
    dragging = true;
    pointClicked = new Point(e.X, e.Y);
    }
    else
    {
    dragging = false;
    }
    }
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
    if (dragging)
    {
    Point pointMoveTo;
    // Find the current mouse position in screen coordinates.
    pointMoveTo = this.PointToScreen(new Point(e.X, e.Y));
    // Compensate for the position the control was clicked.
    pointMoveTo.Offset(-pointClicked.X, -pointClicked.Y);
    // Move the form.
    this.Location = pointMoveTo;
    }
    }
    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {
    dragging = false;
    }

  4. #4

    نمايش فرم در وسط صفحه


    private void Form1_Load(object sender, EventArgs e)
    {
    Screen scr = Screen.PrimaryScreen;
    this.Left = (scr.WorkingArea.Width - this.Width) / 2;
    this.Top = (scr.WorkingArea.Height - this.Height) / 2;
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 27 خرداد 1394 در 02:38 صبح

  5. #5

    نقل قول: نمايش فرم در وسط صفحه

    نقل قول نوشته شده توسط Iran58 مشاهده تاپیک
    نمايش فرم در وسط صفحه
    برای این کار کافیه خاصیت StartPosition فرم تنظیم کنید. کد جناب Iran58 در پست456 زمانی بدرد می خوره که در یک نقطه خواص بخواهید فرم باز بشه

    this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree n;
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 27 خرداد 1394 در 02:39 صبح

  6. #6

    انتقال مقادیر خاصیت Text دو تکست باکس از طریق Drag & Drop

    private void textBox_DragDrop(object sender, DragEventArgs e)
    {
    TextBox txt = (TextBox)sender;
    txt.Text = (string)e.Data.GetData(DataFormats.Text);
    }

    private void textBox_DragEnter(object sender, DragEventArgs e)
    {
    if (e.Data.GetDataPresent(DataFormats.Text))
    {
    e.Effect = DragDropEffects.Copy;
    }
    else
    {
    e.Effect = DragDropEffects.None;
    }
    }

    private void textBox_MouseDown(object sender, MouseEventArgs e)
    {
    TextBox txt = (TextBox)sender;
    txt.SelectAll();
    txt.DoDragDrop(txt.Text, DragDropEffects.Copy);
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    textBox2.DragDrop += new DragEventHandler(this.textBox_DragDrop);
    textBox2.MouseDown += new MouseEventHandler(this.textBox_MouseDown);
    textBox2.DragEnter += new DragEventHandler(this.textBox_DragEnter);
    textBox1.DragDrop += new DragEventHandler(this.textBox_DragDrop);
    textBox1.MouseDown += new MouseEventHandler(this.textBox_MouseDown);
    textBox1.DragEnter += new DragEventHandler(this.textBox_DragEnter);
    textBox1.AllowDrop = textBox2.AllowDrop = true;
    }

  7. #7

    گرفتن و تسخیر کردن (Capture) تصویر صفحه نمایش

    private void button1_Click(object sender, EventArgs e)
    {
    this.BackgroundImage= CaptureScreen();
    }

    private Image CaptureScreen()
    {
    Bitmap screen = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
    Screen.PrimaryScreen.Bounds.Height);
    using (Graphics g = Graphics.FromImage(screen))
    {
    g.CopyFromScreen(0, 0, 0, 0, screen.Size);
    }
    return screen;
    }

  8. #8

    پخش کردن برخی اصوات و صداهای سیستمی تنها با یک خط!

    // Play a beep with default frequency
    // and duration (800 and 200, respectively)
    Console.Beep();

    // Play a beep with frequency as 200 and duration as 300
    Console.Beep(200, 300);

    و یا :
    SystemSounds.Asterisk.Play();

    SystemSounds.Hand.Play();

    SystemSounds.Exclamation.Play();

    SystemSounds.Beep.Play();

    SystemSounds.Question.Play();

  9. #9

    نواختن یک فایل صوتی با فرمت Wave

    using System.Media;


    private void Form1_Load(object sender, EventArgs e)
    {
    SoundPlayer player = new SoundPlayer();
    string path = "C:\\windows\\media\\ding.wav";
    player.SoundLocation = path; //Set the path
    player.Play(); //play it
    }


    منبع : http://www.daniweb.com/code/snippet446.html

  10. #10

    بدست آوردن لیست چاپگرهای نصب شده در یک سیستم

    using System.Drawing.Printing;

    private void GetInstalledPrinters()
    {
    foreach (string printerName in PrinterSettings.InstalledPrinters)
    MessageBox.Show(printerName);
    }

  11. #11

    برخی اعمال متدوال روی تاریخ میلادی

    // Create a TimeSpan representing 2.5 days.
    TimeSpan timespan1 = new TimeSpan(2, 12, 0, 0);

    // Create a TimeSpan representing 4.5 days.
    TimeSpan timespan2 = new TimeSpan(4, 12, 0, 0);

    // Create a TimeSpan representing 1 week.
    TimeSpan oneWeek = timespan1 + timespan2;

    // Create a DateTime with the current date and time.
    DateTime now = DateTime.Now;

    // Create a DateTime representing 1 week ago.
    DateTime past = now - oneWeek;

    // Create a DateTime representing 1 week in the future.
    DateTime future = now + oneWeek;
    مثال :‌ پیدا کردن اختلاف تعداد روزهای بین دو تاریخ :
    DateTime dateFrom = DateTime.Parse("10/10/2007");
    DateTime dateTo = DateTime.Parse("11/12/2007");
    TimeSpan ts = dateTo - dateFrom;
    int days = ts.Days;
    و یا :
    DateTime dtFirst = new DateTime(2007, 10, 10);
    DateTime dtSecond = new DateTime(2007, 11, 12);
    TimeSpan diffResult = dtSecond.Subtract(dtFirst);

  12. #12

    تغییر خواص یک فایل

    using System.IO;

    مخفی و فقط خواندنی کردن یک فایل :
    FileInfo file = new FileInfo(@"C:\test.txt");
    file.Attributes = file.Attributes | FileAttributes.ReadOnly | FileAttributes.Hidden;

    تغییر خاصیت (حذف حالت فقط خواندنی مثال قبل):
    file.Attributes = file.Attributes & ~FileAttributes.ReadOnly;

  13. #13

    محاسبه ی حجم کلی یک دایرکتوری

    using System.IO;

    public long CalculateDirectorySize(DirectoryInfo directory, bool includeSubdirectories)
    {
    long totalSize = 0;
    // Examine all contained files.
    FileInfo[] files = directory.GetFiles();
    foreach (FileInfo file in files)
    {
    totalSize += file.Length;
    }
    // Examine all contained directories.
    if (includeSubdirectories)
    {
    DirectoryInfo[] dirs = directory.GetDirectories();
    foreach (DirectoryInfo dir in dirs)
    {
    totalSize += CalculateDirectorySize(dir, true);
    }
    }
    return totalSize;
    }

    private void button1_Click(object sender, EventArgs e)
    {
    MessageBox.Show(CalculateDirectorySize(new DirectoryInfo( @"C:\WINDOWS\System32"), true).ToString());
    }

  14. #14

    خواندن و نوشتن فایلهای متنی

    using System.IO;

    private void CreateTextFile()
    {
    using (FileStream fs = new FileStream("C:\\test.txt", FileMode.Create))
    {
    using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8))
    {
    w.WriteLine(124.23M);
    w.WriteLine("Salaam!");
    w.WriteLine('!');
    }
    }
    }

    private string ReadFromTextFile()
    {
    StringBuilder sb = new StringBuilder();
    using (FileStream fs = new FileStream("C:\\test.txt", FileMode.Open))
    {
    using (StreamReader r = new StreamReader(fs, Encoding.UTF8))
    {
    sb.AppendLine(r.ReadLine());
    sb.AppendLine(r.ReadLine());
    sb.AppendLine(r.ReadLine());
    }
    }
    return sb.ToString();
    }

  15. #15

    اضافه و جدا کردن نام فایل از مسیر کامل

    string filename = @"..\..\myfile.txt";
    string fullPath = @"c:\Temp";
    string filename = Path.GetFileName(filename);
    string fullPath = Path.Combine(fullPath, filename);
    // (fullPath is now "c:\Temp\myfile.txt")

  16. #16

    ایجاد یک نام تصادفی برای فایل

    string randomFileName = System.IO.Path.GetRandomFileName();


    و برای ایجاد نام منحصر بفرد برای فایلهای موقت :
    string tfile = Path.GetTempFileName();

  17. #17

    باز کردن یک سایت توسط internet explorer


    System.Diagnostics.
    Process.Start("iexplore.exe", "www.barnamenevis.org");

    و برای مثال در فایرفاکس :
     System.Diagnostics.Process.Start("C:\Program Files\Mozilla Firefox\FireFox.exe", "www.barnamenevis.org");

  18. #18

    تبدیل نوع enum به int


    public enum Days { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
    int x = (int) Days.Mon;


  19. #19

    Lightbulb معرفی میانبرهای متداول در کدنویسی

    عادت کردن به میانبرها میتواند سرعت کدنویسی شما را افزایش دهد :
    • CTRL+ALT+L: View Solution Explorer. I use Auto Hide for all of my tool windows to maximize screen real estate. Whenever I need to open the Solution Explorer, it’s just a shortcut away. Related shortcuts: CTRL+ALT+X (Toolbox), F4 (Properties), CTRL+ALT+O (Output), CTRL+\, E (Error List), CTRL+\, T (Task List).
    • F12: Go to definition of a variable, object, or function.
    • SHIFT+F12: Find all references of a function or variable.
    • F7: Toggle between Designer and Source views.
    • CTRL+PgDn: Toggle between Design and Source View in HTML editor.
    • F10: Debug - step over. Related debugging shortcuts: F11 (debug - step into), SHIFT-F11 (debug - step out), CTRL-F10 (debug - run to cursor). F9 (toggle breakpoint).
    • CTRL+D or CTRL+/: Find combo (see section on Find Combo below).
    • CTRL+M, O: Collapse to Definitions. This is usually the first thing I do when opening up a new class.
    • CTRL+K, CTRL+C: Comment block. CTRL+K, CTRL-U (uncomment selected block).
    • CTRL+-: Go back to the previous location in the navigation history.
    • ALT+B, B: Build Solution. Related shortcuts: ALT+B, U (build selected Project), ALT+B, R (rebuild Solution).
    • CTRL+ALT+Down Arrow: Show dropdown of currently open files. Type the first few letters of the file you want to select.
    • CTRL+K, CTRL+D: Format code.
    • CTRL+L: Delete entire line.
    • CTRL+G: Go to line number. This is useful when you are looking at an exception stack trace and want to go to the offending line number.
    • SHIFT+ALT+Enter: Toggle full screen mode. This is especially useful if you have a small monitor. Since I upgraded to dual 17" monitors, I no longer needed to use full screen mode.
    • CTRL+K, X: Insert "surrounds with" code snippet. See Snippets tip below.
    • CTRL+B, T: Toggle bookmark. Related: CTRL+B, N (next bookmark), CTRL+B, P (prev bookmark).

    منبع :‌ http://www.chinhdo.com/20070920/top-11-visual-studio-2005-ide-tips-and-tricks-to-make-you-a-more-productive-developer/

  20. #20

    بدست آوردن لیست تمامی فرمهای باز در یک برنامه

    مثال :‌ تغییر رنگ پشت زمینه ی تمامی فرمهای باز در یک برنامه :
    foreach (Form frm in Application.OpenForms)
    frm.BackColor = Color.Fuchsia;

  21. #21

    restart کردن (بستن و مجددا اجرا کردن) برنامه

    private void button1_Click(object sender, EventArgs e)
    {
    Application.Restart();
    }

  22. #22

    ساده ترین راه برای جلوگیری از Not Respond شدن برنامه در حلقه های طولانی

    برنامه تمامی message های درون message queue فعلی (از قبیل رخدادها و ...) را پردازش میکند.
    Application.DoEvents();
    یک مثال ساده :
    محو شدن تدریجی یک فرم با تغییر دادن خاصیت Opacity

  23. #23

    فقط یک نمونه از برنامه بتواند اجرا شود (با استفاده از Process)

    using System.Diagnostics;
    این تغییرات را در کلاس مربوط به StartUp برنامه اعمال کنید :
    static class Program
    {
    [STAThread]
    static void Main()
    {
    if (IsPrevInstance())
    return;
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(fals e);
    Application.Run(new Form1());
    }

    private static bool IsPrevInstance()
    {
    string processName = Process.GetCurrentProcess().ProcessName;
    Process[] instances = Process.GetProcessesByName(processName);
    if (instances.Length > 1)
    return true;
    else
    return false;
    }
    }

  24. #24

    پراپرتی های اتوماتیک (Automatic Properties) در دات نت 3.0

    به جای نوشتن :
    private string userName;
    public string UserName
    {
    get { return userName; }
    set { userName = value; }
    }
    میتوانید بنویسید :
    public string UserName { get; set; }
    پیشنهاد خود مایکروسافت هم استفاده از حالت دوم است چون اگر snippet مربوط به prop رو اجرا کنید میبینید که برای این حالت تغییر یافته است.

    چند نکته :
    1- در پشت پرده و بصورت اتوماتیک ساختاری همانند پراپرتیهای سنتی تشکیل میشود اما دسترسی به فیلد آن امکان پذیر نیست.
    2- اگر بخواهید یک پراپرتی فقط خواندنی یا فقط نوشتنی ایجاد کنید باید از همان روش سنتی استفاده کنید.
    3- این نوع پراپرتی فقط جهت encapsualte کردن یک فیلد به کار میره و چنانچه نیاز به نوشتن عملیات خاصی (مثل اعتبارسنجی و ...) داشته باشید؛ باید از همان نوع سنتی استفاده کنید.

  25. #25

    عدم نیاز به نوشتن انواع توابع سازنده (ctor) در دات نت فریمورک 3.0 به بعد

    فرض کنید کلاسی برای کاربران خود به این شکل تعریف کردید :
    public class User
    {
    public string Password { get; set; }
    public string UserName { get; set; }
    public DateTime LastLogon { get; set; }
    }
    حال در برنامه میتوانید به اشکال زیر آبجکت آن را مقدار دهی کنید :
    User u1 = new User { UserName="sinpin", Password="123", LastLogon=DateTime.Now };

    User u2 = new User { UserName = "sinpin", Password = "123" };

    User u3 = new User { UserName = "sinpin" };

    به همین منوال میتوانید برای هر کلاسی استفاده کنید. مثلا ساخت یک نمونه از Form2 با تغییر برخی مشخصات :
    new Form2 { Text = "Test", BackColor = Color.Red }.Show();

    new Form2 { StartPosition = FormStartPosition.CenterScreen }.Show();

  26. #26

    تعریف یک متغیر بدون تعیین کردن نوع آن در دات نت فریمورک 3.0 به بعد

    Implicit typed local variables

    با استفاده از کلمه کلیدی var :
    برای مثال نوشتن :
    var answer = 42;
    var s = "this is a string.";
    var names = new string[]{"Joe", "Bob", "Sam"};
    معادل است با :
    int answer = 42;
    string s = "this is a string.";
    string[] names = new string[]{"Joe", "Bob", "Sam"};
    پس از مقداردهی نوع متغیر مشخص خواهد شد.

    اینها درست هستند :
    var a = "See", b = "Spot", c = "run";
    string[] names = new string[]{"Jim", "Joe", "Bob"};
    var b = new[] {1, 2.0, 3.5, 4.75}; // double[]
    var a = new[] {1, 2, 3, 4, 5}; // int[]

    foreach (var name in names)
    {
    ...
    }
    اما اینها اشتباه هستند :
    var x = null;
    var a = 22, b = "Spot", c = 9.5;
    var c = new[] {1, "Name", 2, "Address");
    چند نکته :
    • بلافاصله بعد از تعریف، متغیر باید مقداردهی شود در غیر اینصورت خطای زمان کامپایل رخ میدهد.
    • عمل تعیین نوع تنها یکبار انجام شده و پس از آن قابل تغییر نیست.
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 12:23 عصر

  27. #27

    شروع آشنایی با LINQ بصورت ساده

    مثال 1 -
    فرض کنیم کلاسی مانند زیر تعریف کردیم :
    public class User
    {
    public int Age { get; set; }
    public string UserName { get; set; }
    }
    حال در فرم خود بنویسید :
    User[] users = new User[] {
    new User{UserName="Ahmad", Age=20},
    new User{UserName="Maryam", Age=17},
    new User{UserName="Ali", Age=29},
    new User{UserName="Hooman", Age=33},
    new User{UserName="Sara", Age=22},
    };

    var mySelect = from user in users where user.Age > 20 && user.Age < 30 select user.UserName;

    foreach (string uname in mySelect)
    MessageBox.Show(uname);


    مثال 2 -
    List<string> words = new List<string> { 
    "Word1", "World", "Word2", "Word3", "World4" };
    var wordQuery = from word in words where word == "World" select new { word };
    foreach (var name in wordQuery)
    MessageBox.Show( "-> Hello " + name.word);

  28. #28

    Initilize کردن کالکشنها در دات نت 3.0 به بالا

    میتونید کالکشنها رو در همان زمان تعریف مقداردهی نیز کنید.

    مثال 1-
    List<string> names = new List<string> {"Jim", "Joe", "Bob", "Sam"};
    مثال 2- با فرض داشتن کلاسی مانند:
    public class Person
    {
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    }
    میتونیم بنویسیم :
    List<Person> people = new List<Person> {
    new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 },
    new Person { FirstName = "Bill", LastName = "Gates", Age = 50 },
    new Person { FirstName = "Susanne", LastName = "Guthrie", Age = 32 }
    };

  29. #29

    متودهای گسترش (Extension Methods)

    روشی برای تزریق یک متود تعریف شده به سایر کلاسها بدون دسترسی به سورس و کامپایل مجدد است.
    (البته این تزریق بصورت موقت و ظاهری است و در پشت پرده از طریق یک متود استاتیک اینکار انجام میشود.)

    مثال - میخواهیم متودی به کلاس string بیافزاییم که آخرین حرف یک رشته را برگرداند. یک کلاس استاتیک به شکل زیر تعریف میکنیم : (توجه : اسم کلاس اهمیتی ندارد)
    public static class MyExtensions
    {
    public static string GetLastCharacter(this System.String str)
    {
    return str.Substring(str.Length-1, 1);
    }
    }
    حال میتونیم این متد را در لیست متدهای یک string - مانند زیر - مشاهده کنیم :
    string temp = "Sinpin";
    MessageBox.Show( temp.GetLastCharacter());
    آخرین ویرایش به وسیله sinpin : یک شنبه 09 تیر 1387 در 09:44 صبح

  30. #30

    روش ارسال ایمیل به چندین گیرنده

    using System.Net.Mail;
    class SendEmail
    {
    public static void SendMessage(string subject, string messageBody, string fromAddress, string toAddress, string ccAddress)
    {
    MailMessage message = new MailMessage();
    SmtpClient client = new SmtpClient();
    message.From = new MailAddress(fromAddress);

    // Allow multiple "To" addresses to be separated by a semi-colon
    if (toAddress.Trim().Length > 0)
    {
    foreach (string addr in toAddress.Split(';'))
    {
    message.To.Add(new MailAddress(addr));
    }
    }

    // Allow multiple "Cc" addresses to be separated by a semi-colon
    if (ccAddress.Trim().Length > 0)
    {
    foreach (string addr in ccAddress.Split(';'))
    {
    message.CC.Add(new MailAddress(addr));
    }
    }

    message.Subject = subject;
    message.Body = messageBody;
    client.Host = "YourMailServer";
    client.Send(message);
    }
    }

    منبع : http://code.msdn.microsoft.com/sendemail

  31. #31

    نحوه Drag کردن عکس از یک pictureBox به یک pictureBox دیگه

    نمونه برنامه را می توانید در اخر همین پست دانلود کنید
    برای این عمل به یک رویداد (MouseMove) برای pictureBox منبع نیاز دارید و دو رویداد (DragDrop) و ( DragEnter) از pictureBox مقصد. که نحوه کد کردن آن ها به شکل زیر است

    private void picBoxSource_MouseMove(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Left & picBoxSource.Image != null)
    {

    picBoxSource.DoDragDrop(picBoxSource.Image, DragDropEffects.All);
    }
    }




    private void picBoxDest_DragEnter(object sender, DragEventArgs e)
    {
    if (e.Data.GetDataPresent(DataFormats.Bitmap))
    {
    e.Effect = DragDropEffects.Copy;
    }
    else
    e.Effect = DragDropEffects.None;
    }



    private void picBoxDest_DragDrop(object sender, DragEventArgs e)
    {
    if (e.Data.GetDataPresent(DataFormats.Bitmap))
    {
    picBoxDest.Image = (Image)e.Data.GetData(DataFormats.Bitmap);
    }
    }



    نکته : خاصیت AllowDrop مربوط به pictureBox مقصد را بایستی true کنید. دقت داشته باشید که این خاصیت، در پنجره خواص مربوط به pictureBox وجود نداره و باید اونو از طریق کد نویسی اعمال کنید.
    موفق باشید
    مهدی کیانی
    فایل های ضمیمه فایل های ضمیمه

  32. #32

    نحوه ایجاد فرم About بدون کد نویسی و طراحی فرم

    < نمونه برنامه را از آخر همین پست دریافت کنید >
    شما می توانید ، یک فرم About ("در باره برنامه" .. یا بعضا "در برباره ما ")، به پروژه خود اضافه کنید. بدون اینکه کد نویسی برای قسمت های مختلف آن انجام بدین.
    برای این کار روی نام سولوشن برنامه کلیک راست کنید، و از گزینه properties ،تب مربوط به Application را انتخاب کنید. (Default Tab)
    سپس روی گزینه Assembly Information کلیک کنید تا پنجره مربوط به Assembly Information باز شود.
    مانند شکل زیر





    پس از پر کردن فیلد ها با اطلاعات دلخواه شما، از منوی project و از گزینه Add New Item یک AboutBox به فرم خود اضافخ کنید. (به عنوان نمونه ABoutBox1)

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


    new AboutBox1().ShowDialog(this);


    مانند شکل زیر







    موفق باشید
    مهدی کیانی
    فایل های ضمیمه فایل های ضمیمه

  33. #33

    ساختن یک لیست ژنریک از اشیاء

    با فرض داشتن کلاسی مانند :
    public class Person
    {
    public Person() { }
    public Person(string _firstName, string _lastName)
    {
    this.firstName = _firstName;
    this.lastName = _lastName;
    }
    private string firstName;
    public string FirstName
    {
    get { return firstName; }
    set { firstName = value; }
    }
    private string lastName;
    public string LastName
    {
    get { return lastName; }
    set { lastName = value; }
    }
    }

    میتونیم بنویسیم :
    List<Person> persons = new List<Person>();
    persons.Add(new Person("ali", "ahmadi");
    persons.Add(new Person("maryam", "hosseini");

  34. #34

    ساختن لیستی از کنترلها در زمان اجرا

    مثال:ساختن 10 دکمه درون یک لیست ژنریک و اختصاص آن به لیست کنترلهای یک فرم
    private void Form1_Load(object sender, EventArgs e)
    {
    List<Button> buttons = new List<Button>();
    for (int i = 0; i < 10; i++)
    {
    Button btn = new Button();
    btn.Size = new Size(120, 22);
    btn.Text = string.Format("Button{0}", i);
    btn.Location = new Point(10, i * 25 + 10);
    buttons.Add(btn);
    }
    this.Controls.AddRange(buttons.ToArray());
    }

  35. #35

    اختصاص دادن رویداد به کنترلهای ساخته شده در runtime

    private void Form1_Load(object sender, EventArgs e)
    {
    List<Button> buttons = new List<Button>();
    for (int i = 0; i < 10; i++)
    {
    Button btn = new Button();
    btn.Size = new Size(120, 22);
    btn.Text = string.Format("Button{0}", i);
    btn.Location = new Point(10, i * 25 + 10);
    btn.Click += new EventHandler(btn_Click);
    buttons.Add(btn);
    }
    this.Controls.AddRange(buttons.ToArray());
    }

    void btn_Click(object sender, EventArgs e)
    {
    for (int i = 0 ; i < 10 ; i++)
    {
    Button btn = sender as Button;
    btn.Location = new Point(btn.Left + i, btn.Top);
    Application.DoEvents();
    }
    }

  36. #36

    سیاه و سفید کردن عکس با کد نویسی

    < نمونه برنامه را می تونین در آخر مطالب دریافت کنید>

    توسط متد زیر می توانید هر عکسی را به حالت سیاه و سفید یا همون grayScale در بیارین



    public Image GrayScaleImage(Graphics graph, Image img, int left, int top)
    {

    ColorMatrix colorMix = new ColorMatrix();
    colorMix.Matrix00 = 1 / 3f;
    colorMix.Matrix01 = 1 / 3f;
    colorMix.Matrix02 = 1 / 3f;
    colorMix.Matrix10 = 1 / 3f;
    colorMix.Matrix11 = 1 / 3f;
    colorMix.Matrix12 = 1 / 3f;
    colorMix.Matrix20 = 1 / 3f;
    colorMix.Matrix21 = 1 / 3f;
    colorMix.Matrix22 = 1 / 3f;

    ImageAttributes imgAttrib = new ImageAttributes();
    imgAttrib.SetColorMatrix(colorMix);


    graph.DrawImage(img, new Rectangle(left, top, img.Width,
    img.Height), 0, 0, img.Width, img.Height,
    GraphicsUnit.Pixel, imgAttrib);
    Bitmap bmp = new Bitmap(img);
    return bmp;


    }




    عملکر متد خیلی واضحه.
    کلا با ImageAttribute ها و ColorMiser ها خیلی کارهای خوشکلی میشه کرد که به مرور میذارم اینجا
    راستی این کد به درد اون دسته عزیزانی که می خواستن، shutdown ویندوز را شبیه سازی کنند خیلی خوبه. (اینکه می خواستن از دسکتاپ عکس بگیرن و بعد اونو تار کنن) البته برای تار کردن عکس ها، راه های دیگه ای هم هست که انشالا به مرور
    نمونه






    در حاشیه :
    تورو خدا می بینین؟ فردا ظهر امتحان ارشد دارم، الان ساعت 1:30 نصف شبه نشستم برای شما و فقط به عشق شما دوستان مطلب می نویسم
    موفق باشید
    یا علی مدد
    مهدی کیانی
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Mahdi.Kiani : پنج شنبه 02 اسفند 1386 در 01:14 صبح دلیل: یادم رفته بود نمونه برنامه را آپ کنم

  37. #37

    معنای کلمات متداولی که میشنوید

    معنای کلمات متداولی که معمولا دات نت کار ها خواهند شنید. مخصو.صا تازه کار های عزیز

    1 ) CLR
    مخفف : Common Language RunTime

    معنا :
    محیط زمان اجرای برنامه های دات نت
    -------------------------------------------------------------------------
    2) CTS
    مخفف : Common Type System
    معنا : تایپ هایی هستند که در همه زبان های دات نت شناخته شده هستند و معمولا یک نام مستعار در هر زبان مجزا دارند.
    مثلا System.Int32 در زبان C#‎‎‎‎‎ همان int و در زبان VB همان Integer است.
    نکته:
    CTS تایپ ها برای همانهنگ سازی بین زبان های مختلف دات نتی استفاده میشه
    ----------------------------------------------------------------------------------------------
    3) IL
    مخفف : Intermediate Language
    معنا : زبان واسطی که در مرحله اول کامپیا برنامه ها، تمامی کد های نوشته شده با زبان های دات نت (اعم از سی شارپ، وی بی و ..) به این زبان ترجمه می شوند. (باز هم جهت سازگاری بین زبان های مختلف در دات نت)

    مثال

    تکه کدی به زبان C#‎‎‎‎‎


    public int add(int num1, int num2)
    {

    return num1 + num2;
    }




    همان تکه کد به زبان VB


    Public Function add(ByVal num1 As Integer, ByVal num2 As Integer) As Integer

    Return num1 + num2
    End Function




    تکه کد فوق به زبان IL


    .method public hidebysig instance int32 add(int32 num1, int32 num2) cil managed
    {
    .maxstack 2
    .locals init (
    [0] int32 CS$1$0000)
    L_0000: nop
    L_0001: ldarg.1
    L_0002: ldarg.2
    L_0003: add
    L_0004: stloc.0
    L_0005: br.s L_0007
    L_0007: ldloc.0
    L_0008: ret
    }





    نکته : شما می توانید کل برنامه خود را به زبان IL بنویسید و سپس آن را اجرا کنید. ولی اصولا هیچ آدم عاقلی این کار را نمیکنه
    ------------------------------------------------------------------------------------------
    4 ) CIL
    مخفف : Common Intermediate Langiage
    معنا : معالد همون IL هست.
    نکته: استفاده از IL متداول تر است.
    -----------------------------------------------------------------------------------------
    5) VES
    مخفف : Virtual Executation Systeme
    معنا : معادل CLR هست
    نکته: CLR متداول تر است.
    ---------------------------------------------------------------------------------
    6) CLI
    مخفف : Common Language Interface
    معنا : به مجموعه CLR و CTS و CLI می گویند

    فعلا همینا تو ذهنم بود
    اگه بازم یادم اومد، همین جا میذارم

    موفق باشید
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 12:29 عصر

  38. #38

    کار کردن با کلاس TimeZoneInfo

    این کلاس مختص دات نت 3.5 (به بعد) است و جهت استفاده باید System.Core رو نیز به References پروژه ی خود بیافزایید.

    مثال - بدست آوردن تاریخ و زمان فعلی در توکیو :
    TimeZoneInfo tzSource = TimeZoneInfo.Local;
    TimeZoneInfo tzDestination = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
    string sourceTime = TimeZoneInfo.ConvertTime(DateTime.Now,
    tzSource, tzDestination).ToShortTimeString();
    MessageBox.Show(sourceTime);

  39. #39
    کاربر دائمی آواتار mehdikhazaei
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آمل
    پست
    103

    نقل قول: کار کردن با کلاس TimeZoneInfo

    توابع Params در # C
    یک تابع می تواند به تعداد نامحدود پارامتر دریافت کند برای اینکار از دستور Params در تعریف پارامترها استفاده می شود به مثال زیر توجه کنید :

    public static long Sum(params int[] numbers)
    {
    long Result = 0;
    foreach (int number in numbers)
    {
    Result += number;
    }
    return Result;
    }

  40. #40
    کاربر دائمی آواتار jalil_m
    تاریخ عضویت
    آذر 1386
    محل زندگی
    تهران
    پست
    138

    نقل قول: کار کردن با کلاس TimeZoneInfo

    نقل قول نوشته شده توسط mehdikhazaei مشاهده تاپیک
    توابع Params در # C
    یک تابع می تواند به تعداد نامحدود پارامتر دریافت کند برای اینکار از دستور Params در تعریف پارامترها استفاده می شود به مثال زیر توجه کنید :

    public static long Sum(params int[] numbers)
    {
    long Result = 0;
    foreach (int number in numbers)
    {
    Result += number;
    }
    return Result;
    }

    اگر بخواهیم پارامتر های نا محدود از جنس های مختلف باشند باید به صورت زیر انجام شود :



    public static void myFunction(params object[] numbers)
    {
    .
    .
    .
    }




صفحه 3 از 13 اولاول 12345 ... آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •