صفحه 1 از 14 12311 ... آخرآخر
نمایش نتایج 1 تا 40 از 533

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

  1. #1

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

    سلام

    هدف از این تاپیک، صرفا جمع آوری برخي نکات و ترفندهای خلاصه و مفید برنامه نویسی در سی شارپ تحت دات نت فریمورک است. بدلیل تنوع کاربران تالار و گستردگی زبان و فریمورک؛ لزومی ندارد نکته ای که در اين تاپيك ارسال ميشود موضوعی غامض و چشمگیر باشد؛ در واقع هر نکته ای که به شکل صحیح ارسال شود، میتواند مفید باشد. لطفا قبل از ارسال هر نكته - با مراجعه به ليست نكات - از تكراري نبودن آن اطمينان حاصل نماييد.
    ماهيت تاپيك
    این تاپیک محل مناسبی برای این موارد نیست :
    آموزش برنامه نویسی، سئوال و جواب کردن، سعی در اثبات برتری یک روش خاص، خورده گیری از مطالب ارسالی دیگران، ارسال مطالب غیرفنی و نامرتبط و ...
    لذا چنانچه راجع به هر یک از نکات سئوال و یا مشکلی پیش آمد، لطفا موضوع رو از طریق ارسال پیام خصوصی به نویسنده مطلب و یا طرح در یک تاپیک مستقل، حل و فصل کنید.
    زبان پیشفرض
    زبان پیشفرض ارسال کد در این تاپیک سی شارپ و زبان محاوره ای جهت توضیحات فارسی است.
    چنانچه موضوع ارسالی را از سایتی انگلیسی زبان برداشت میکنید حداقل چند خط از موضوع آن را به فارسی ترجمه نمایید.
    چکیده نویسی
    نکات و ترفندها رو بصورت کاملا خلاصه، مفید و ماژولار (تمرکز هر پست تنها روی یک نکته باشد) ارسال نمایید و از درج هرگونه نکته ی طولانی خودداری و چنانچه نکته ی قابل توجه ای سراغ دارید که نیاز به کدنویسی و توضیحات طولانی دارد؛ تنها به یک اشاره کوچک بسنده و فایل سورس و یا توضیحات کامل را ضمیمه فرمایید.
    درج عنوان پست

    1. عنوان مناسب و مختصری برای مطلب ارسالی خود پیدا کرده و آن را در قسمت عنوان پست بنویسید.
    2. عنوان پست را دقیق و قطعی انتخاب نمایید؛ برای مثال عنوان : "چند نکته مهم در سی شارپ" نامناسب است و یا بجای عنوان : "چند فیلم آموزشی مفید" بهتر است بنویسید : "معرفی لینک دانلود چند فیلم آموزشی رايگان در مورد LINQ"

    درج رفرنس اصلی و نكات تست شده
    چنانچه نکته ارسالی را از منبعی برداشت میکنید لطفا لینک اصلی آن را نیز در انتهای مطلب درج فرمایید. (با اینکار سایر دوستان نیز میتوانند با مراجعه به لینک از جزییات نکته ارسالی بیشتر مطلع گردند.) و تنها نکات و مطالبی رو ارسال کنید که خود شما تست کرده و از صحت عملکرد اونها مطمئن هستید.



    از اینکه به حقوق خود و دیگران احترام میگذارید از شما سپاسگزارم
    موفق باشید.


    _________________________
    راهنماي آيكن پستها :
    : نکات متوسط
    : نکات پیچیده
    : نکات جالب (صرفنظر از سطح پیچیدگی)
    : نکات ضمیمه دار
    : نکات توضیحی و تعاریف
    : لینک به نکاتی که قبلا در سایت مطرح شده اند.
    آخرین ویرایش به وسیله sinpin : یک شنبه 10 آذر 1387 در 15:44 عصر
    ...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست

  2. #2

    Post ایندکس (قسمت اول)


    اصول اولیه
    OOP و دات نت فریمورک :
    مفاهیم بنیادین شیء گرایی :
    تعاریف، اشیاء و کلاسها :


    فیلدها، پراپراتیها و متودها :


    اینترفیس، رویداد، Delegate, Threading :

    الگوهای طراحی (Design Patterns) :
    ----------
    کار کردن با انواع داده ها :
    رشته ها :


    تاریخ :

    کار با کنترلها و کامپوننتها :
    کنترلها :
    کنترلهای استاندارد :

    فرمها :

    کنترلهای ویرایشی

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

    انواع دکمه ها :
    • بزودی...

    کنترلهای نمایشی : PictureBox, Label, ...

    تغییر خواص عمومی کنترلها :

    کنترلهای سفارشی (Derived Controls, UserControls) :
    کامپوننتها :
    فایلها، استریمها (I/O) :
    دایرکتوریها و درایوها :


    فشرده سازی :

    سریالیزشین :


    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 16:39 عصر

  3. #3

    Post ایندکس (قسمت دوم)


    گرافیک : GDI, GDI+, DirectX, OpenGL
    گرافیک :

    نکات سیستمی :
    عملیات قابل انجام توسط توابع API و سایر کتابخانه های سیستمی :


    عملیات قابل انجام توسط دستورات خط فرمان :

    عملیات قابل انجام توسط WMI :


    عملیات متداول و ویژه :




    رجیستری ویندوز و EventLog:


    پروسه ها :
    سرویسهای ویندوز :

    • بزودی...
    توزیع و Setup سازی:
    توزیع برنامه :

    • بزودی...
    توزیع دیتابیس :
    توزیع گزارشات کریستال ریپورت :

    • بزودی...
    معرفیها :
    معرفی ابزار سودمند :


    معرفی سایتهای مفید :

    معرفی کتابها و سایر مطالب آموزشی :

    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 16:45 عصر

  4. #4
    آخرین ویرایش به وسیله sinpin : شنبه 07 اردیبهشت 1387 در 09:04 صبح

  5. #5

    Exclamation حاشیه دار کردن کنترل TextBox با یک رنگ دلخواه

    در کلاس TextBox خود (و یا سایر کنترلهای دلخواه : کامبوباکس، لیست باکس و ...) بنویسید :
    private static int WM_NCPAINT = 0x0085;
    private static int WM_ERASEBKGND = 0x0014;
    private static int WM_PAINT = 0x000F;

    [DllImport("user32.dll")]
    static extern IntPtr GetDCEx(IntPtr hwnd, IntPtr hrgnclip, uint fdwOptions);

    [DllImport("user32.dll")]
    static extern int ReleaseDC(IntPtr hwnd, IntPtr hDC);

    protected override void WndProc(ref Message m)
    {
    base.WndProc(ref m);
    if (m.Msg == WM_NCPAINT || m.Msg == WM_ERASEBKGND || m.Msg == WM_PAINT)
    {
    IntPtr hdc = GetDCEx(m.HWnd, (IntPtr)1, 1 | 0x0020);

    if (hdc != IntPtr.Zero)
    {
    Graphics graphics = Graphics.FromHdc(hdc);
    Color borderColor = Color.Blue;
    Rectangle rectangle = new Rectangle(0, 0, this.Width, this.Height);
    ControlPaint.DrawBorder(graphics, rectangle, borderColor, ButtonBorderStyle.Solid);
    m.Result = (IntPtr)1;
    ReleaseDC(m.HWnd, hdc);
    }
    }
    }

    توجه داشته باشید که انجام اینکار صرفا بوسیله override کردن رویداد paint و رسم یک مستطیل امکانپذیر نیست.

  6. #6

    محو شدن تدریجی یک فرم با تغییر دادن خاصیت Opacity

    private void button1_Click(object sender, EventArgs e)
    {
    this.Opacity = 1;
    for (int i = 0; i < 100; i++)
    {
    this.Opacity -= 0.01;
    Application.DoEvents();
    }
    }
    this به آبجکت فعلی از فرم اشاره دارد.

  7. #7

    انتقال آیتمهای یک آرایه از اعداد به یک لیست باکس

    int[] numbers = { 12, 23, 34, 45, 56, 67 };
    Object[] oNumbers = new Object[numbers.Length];
    numbers.CopyTo(oNumbers, 0);
    listBox1.Items.AddRange(oNumbers);

  8. #8

    پیاده سازی حالت ساده ی الگوی سینگلتون در یک کلاس

    sealed class SingletonClass
    {
    // Static members are lazily initialized.
    // .NET guarantees thread safety for static initialization
    private static readonly SingletonClass instance =
    new SingletonClass();

    // Note: constructor is private.
    private SingletonClass(){}

    public static SingletonClass GetInstance()
    {
    return instance;
    }
    }
    منبع : http://www.dofactory.com/Patterns/PatternSingleton.aspx

  9. #9

    رسم یک چندضلعی توپر روی یک فرم

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
    Graphics g = e.Graphics;
    // Create pen.
    Pen blackPen = new Pen(Color.Black, 3);
    // Create points that define polygon.
    Point point1 = new Point(30, 50);
    Point point2 = new Point(100, 25);
    Point point3 = new Point(200, 5);
    Point point4 = new Point(250, 50);
    Point point5 = new Point(270, 100);
    Point point6 = new Point(250, 250);
    Point[] curvePoints = {point1, point2, point3, point4, point5, point6};
    // Draw polygon to screen.
    g.DrawPolygon(blackPen, curvePoints);
    // Fill polygon
    g.FillPolygon(Brushes.Red, curvePoints);
    }

  10. #10

    کشیدن نقاشی با توابع ساده گرافیکی و ذخیره خروجی در یک فایل

    public void Draw2File ()
    {
    Bitmap bmp = new Bitmap (500, 400);
    Graphics gr = Graphics.FromImage (bmp);
    Rectangle rect = new Rectangle (20, 20, 450, 350);
    gr.DrawRectangle (Pens.Red, rect);
    gr.FillRectangle(Brushes.Pink, rect);
    gr.DrawString ("Salam", new Font ("Arial", 10), Brushes.Red, 50, 50);
    gr.DrawArc (Pens.Red, 30, 30, 60, 60, 0, 180);
    gr.DrawEllipse(new Pen(Color.Yellow, 3), new Rectangle(200, 100, 200, 200));
    bmp.Save ("C:\\1.bmp");
    bmp.Dispose ();
    gr.Dispose ();
    }

  11. #11

    بدست آوردن لیست نمونه های SQL Server موجود در شبکه

    using System.Data.Sql;

    private void ShowSQLServerInstances()
    {
    SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
    System.Data.DataTable table = instance.GetDataSources();
    dataGridView1.DataSource = (table);
    }

  12. #12

    افزودن و حذف کردن یک برنامه به StartUp ویندوز از طریق کلیدهای رجیستری

    using Microsoft.Win32;

    private void AddStartUpKey(string _name, string  _path)
    {
    RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Micros oft\Windows\CurrentVersion\Run", true);
    key.SetValue(_name, _path);
    }

    private void RemoveStartUpKey(string _name)
    {
    RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Micros oft\Windows\CurrentVersion\Run", true);
    key.DeleteValue(_name, false);
    }

  13. #13

    Hibernate و Standby کردن کامپیوتر

    // Hibernate
    Application.SetSuspendState(PowerState.Hibernate, true, true);

    // Standby
    Application.SetSuspendState(PowerState.Suspend, true, true);

  14. #14

    قفل کردن کامپیوتر از طریق کدنویسی

    [DllImport("user32.dll")]
    public static extern void LockWorkStation()

    // Lock workstation
    LockWorkStation();

  15. #15

    شفاف کردن پشت زمینه ی کنترلها

    ایجاد شفافیت کامل پشت زمینه ی یک کنترل :
    control.BackColor = Color.Transparent;
    تعیین میزان شفافیت یک کنترل:
    control.BackColor = Color.FromArgb(trancparency, control.BackColor);
    در کد بالا مقدار trancparency از 0 (برای کاملا شفاف) تا 255 (کاملا کدر) قابل تغییر است.

    مثال : یک Label با شفافیت 50%
    label1.BackColor = Color.FromArgb(127, label1.BackColor);

  16. #16

    Shutdown، Restart و Logoff کردن یک کامپیوتر بوسیله کد

    [DllImport("user32.dll")]
    public static extern int ExitWindowsEx(int uFlags, int dwReason);

    // Log Off
    ExitWindowsEx(0, 0);

    // Reboot
    ExitWindowsEx(2, 0);

    // Shutdown
    ExitWindowsEx(1, 0);

    // Force LogOff
    ExitWindowsEx(4, 0);

    و یا:
    // Log Off
    System.Diagnostics.Process.Start("ShutDown", "/l");

    // Reboot
    System.Diagnostics.Process.Start("ShutDown", "/r");

    // Shutdown
    System.Diagnostics.Process.Start("ShutDown", "/s");

  17. #17

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

    مثال : بستن notepad
    using System.Diagnostics;

    foreach (Process p in Process.GetProcesses())
    {
    if (p.ProcessName.ToLower() == "notepad")
    p.Kill();
    }
    و یا :
    System.Diagnostics.Process.Start("TaskKill", "/f /im Notepad.exe /t");

  18. #18

    Ping کردن یک کامپیوتر تحت شبکه

    using System.Net.NetworkInformation;
    private void button2_Click(object sender, EventArgs e)
    {
    string remoteMachineNameOrIP = "127.0.0.1";
    int timeOut = 5;
    Ping ping = new Ping();
    // Pinging remote maching
    PingReply reply = ping.Send(remoteMachineNameOrIP, timeOut);
    // Displaying the result
    StringBuilder sb = new StringBuilder();
    sb.Append("Address:" + reply.Address.ToString());
    sb.Append("\nStatus:" + reply.Status.ToString());
    sb.Append("\nRoundtripTime:" + reply.RoundtripTime.ToString());
    MessageBox.Show(sb.ToString(), "Ping Result: " + remoteMachineNameOrIP);
    }
    منبع : http://www.dotnetspider.com/code/C-245-Ping-remote-computer-network.aspx

  19. #19

    بدست آوردن مسیر دایرکتوری جاری برنامه

    MessageBox.Show(AppDomain.CurrentDomain.BaseDirect  ory);
    یا :
    MessageBox.Show(System.IO.Directory.GetCurrentDire  ctory());
    یا :
    MessageBox.Show(Application.StartupPath);
    یا:
    MessageBox.Show(System.IO.Path.GetDirectoryName(Ap  plication.ExecutablePath));

  20. #20

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

    مثال : برگرداندن 10 رکورد تصادفی از جدول myTable
    SELECT TOP 10 id,title
    FROM myTable
    ORDER BY NEWID()

  21. #21

    پاک کردن خاصیت Text گروهی از کنترلهای مشخص

    کاربرد : زمانی که نمیتوان از یک الگوریتم بازگشتی استفاده کرد؛ برای مثال کنترلها در Container های متفاوتی هستند و تنها تعداد خاصی از آنها باید Clear شوند.
    public void ClearControls(params Control[] ctls)
    {
    foreach (Control ct in ctls)
    ct.Text = "";
    }

    private void button1_Click(object sender, EventArgs e)
    {
    ClearControls(textBox1, textBox2, comboBox1);
    }

  22. #22

    عوض کردن نشانگر ماوس (cursor) روی یک کنترل

    استفاده از کرسرهای پیشفرض محیط :
    button1.Cursor = Cursors.Hand;

    لود کردن یک کرسر سفارشی از فایل :
    button1.Cursor = new Cursor(@"C:\WINDOWS\Cursors\hibeam.cur");

  23. #23

    پاک کردن خاصیت Text کنترلهای موجود در یک Container بصورت بازگشتی

    public void ClearControls(Control _parent)
    {
    if (!_parent.HasChildren)
    _parent.Text = "";
    foreach (Control ct in _parent.Controls)
    ClearControls(ct);
    }

    private void button1_Click(object sender, EventArgs e)
    {
    ClearControls(this);
    }

  24. #24

    بدست آوردن آخرین Identity اضافه شده به جدول

    INSERT INTO Sales.Customer ([TerritoryID],[CustomerType]) VALUES (8,'S')
    GO
    SELECT SCOPE_IDENTITY()

  25. #25
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165

    ایجاد کردن یک Property

    برای اینکه خیلی سریع یک Property ایجاد کنی کافیه که کلمه prop رو تایپ کنین و دوباره Tab بزنین. بعد نوع داده ای , نام متغییر private و در نهایت نام Propety مورد نظرتون. با تایپ کردن 5 کلمه Property تون آمادست.
    عکس های ضمیمه عکس های ضمیمه

  26. #26
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165

    using کردن یک namespace

    وقتی نام کلاسی رو می نویسین و می دونین که باید ازش using کنین کافیه که بعد تایپ کردن اسمش Alt + Shift + F10 و بعد Enter رو بزنین خودش براتون using رو اضافه می کنه!

  27. #27
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165

    ساختن یک Connection با استفاده از ConnectionString موجود در فایل Configuration

    برای خواندن ConnectionString ی که در فایل app.config قرار داده شده کافیه و ایجاد یک SqlConnection کافیه کد زیر را تایپ کنین:


    SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["myConnection"].ConnectionString);

  28. #28
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165

    Encrypt کردن ConnectionString ها موجود در فایل app.Config

    برای Encrypt کردن قسمت ConnectionStrings فایل web.config یا app.Config از کد زیر استفاده می کنیم:

    App.Config

    Configuration config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
    config.ConnectionStrings.SectionInformation.ForceS ave = true;
    config.ConnectionStrings.SectionInformation.Protec tSection("RsaProtectedConfigurationProvider");
    config.Save();


    Web.Config

    Configuration config = WebConfigurationManager.OpenWebConfiguration("myWe bSite");
    config.ConnectionStrings.SectionInformation.ForceS ave = true;
    config.ConnectionStrings.SectionInformation.Protec tSection("RsaProtectedConfigurationProvider");
    config.Save();

  29. #29
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165

    Decrypt کردن ConnectionString ها موجود در فایل app.Config

    برای Decrypt کردن محتویات ConnectionString داخل فایل های Config از کد های زیر استفاده می کنیم:

    برای App.Config

    Configuration config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
    config.ConnectionStrings.SectionInformation.ForceS ave = true;
    config.ConnectionStrings.SectionInformation.Unprot ectSection();
    config.Save();
    برای Web.Config

    Configuration config = WebConfigurationManager.OpenWebConfiguration("myWe bSite");
    config.ConnectionStrings.SectionInformation.ForceS ave = true;
    config.ConnectionStrings.SectionInformation.Unprot ectSection();
    config.Save();

  30. #30

    Lightbulb معرفی چند snippet متداول جهت سرعت بخشیدن به کدنویسی

    آشنایی با Snippet ها باعث سرعت شما در محیط کدنویسی میشود. برای استفاده کافیست بلافاصله بعد از نوشتن آنها (و بدون ایجاد فاصله) دوبار دکمه Tab را فشار دهید. (توضیحات بیشتر)
    در ادامه با چند اسنیپت متداول آشنا خواهید شد :

    ایجاد یک ناحیه :‌
    #region
    ایجاد MessageBox :
    mbox
    ایجاد Constructor برای کلاس :
    ctor
    ایجاد متود Main :
    svm
    برای ایجاد کلاسها، ایندکسر، استراکچر، ...
    class, enum, struct, indexer
    برای ایجاد انواع حلقه ها :
    for
    forr
    foreach
    while
    do
    ایجاد پراپرتی :
    prop
    propg
    دستورات شرطی :
    if
    else
    switch
    و ...

    روش دیگر افزودن :‌ روی یک قسمت خالی در محیط کدنویسی Right Click و سپس گزینه Insert Snippet رو انتخاب نمایید.
    چنانچه کدی (مثلا 10 خط) نوشتید که میخواهید درون یک بلاک (حلقه، شرط و ...) قرار بگیره تمامی خطوط آن را Select و پس از Right Click گزینه Surround with رو انتخاب نمایید.

    در لینک زیر نیز ضمن آشنایی با سایر موارد میتوانید snippet های مفید دیگری را نیز دانلود و به IDE خود بیفزایید.
    لیست کامل سایر snippetها : http://msdn2.microsoft.com/en-us/vs2005/aa718338.aspx

  31. #31

    ایجاد فرمهایی با اشکال غیرمستطیلی

    ایجاد یک فرم دایره ای شکل :
    private void Form1_Load(object sender, EventArgs e)
    {
    this.Height = 350;
    this.Width = 350;
    //Creating circle path
    System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
    path.AddEllipse(0, 0, 300, 300);
    //Creating the region from the circle path
    this.Region = new Region(path);
    this.Show();
    }
    منبع : http://www.dotnetspider.com/code/C-144-Create-Circle-shaped-Form-using-Regions.aspx

  32. #32

    Cool قطع کردن اتصال اینترنت دایل آپ از طریق دستورات خط فرمان

    System.Diagnostics.Process.Start("rasdial", "/disconnect"); 

  33. #33

    تغییر زبان پیشفرض ویندوز بصورت داینامیک در برنامه

    public struct LanguageHelper
    {
    public static void SetLanguage2English()
    {
    InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("en-US"));
    }

    public static void SetLanguage2Farsi()
    {
    InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("fa-IR"));
    }
    }

  34. #34

    ایجاد طیف رنگ (Gradient) بعنوان پشت زمینه ی کنترلها

    using System.Drawing.Drawing2D;
    using System.Drawing;

    public void PaintGradient(Control _control, LinearGradientMode _direction, Color _gradientColorStart, Color _gradientColorEnd)
    {
    LinearGradientBrush gradBrush;
    gradBrush = new LinearGradientBrush(new Rectangle(0, 0, _control.Width, _control.Height), _gradientColorStart, _gradientColorEnd, _direction);
    Bitmap bmp = new Bitmap(_control.Width, _control.Height);
    Graphics g = Graphics.FromImage(bmp);
    g.FillRectangle(gradBrush, new Rectangle(0, 0, _control.Width, _control.Height));
    _control.BackgroundImage = bmp;
    _control.BackgroundImageLayout = ImageLayout.Stretch;
    }
    حال این متود رو در رخداد Paint کنترلهای دلخواه (فرم، دکمه، پنل ...) بنویسید :
    private void Form1_Paint(object sender, PaintEventArgs e)
    {
    PaintGradient(this, LinearGradientMode.Vertical, Color.RoyalBlue, Color.DarkBlue);
    }
    خصوصا ظاهر بهتر و مناسبتری برای دکمه های شما ایجاد میکند.

  35. #35

    Exclamation چگونه از یک فرم تنها یک عدد بتواند باز شود ؟ (توسط Generic Singleton)

    با استفاده از پیاده سازی ژنریک الگوی سینگلتون :

    public class SingletonProvider<T> where T : new()
    {
    SingletonProvider() { }

    public static T Instance
    {
    get
    {
    return SingletonCreator.Instance;
    }
    }

    class SingletonCreator
    {
    static SingletonCreator(){}
    private static T instance;
    public static T Instance
    {
    get
    {
    System.Windows.Forms.Form frm = instance as System.Windows.Forms.Form;
    if (instance == null || frm.IsDisposed==true)
    instance = new T();
    return instance;
    }
    }
    }
    }
    و برای استفاده :
    BoatForm boat = SingletonProvider<BoatForm>.Instance;

    آموزش کامل این روش : https://barnamenevis.org/showthread.php?t=90581

  36. #36

    طریقه تغییر دادن خاصیت FontStyle یک کنترل در زمان اجرا

    private void Form1_Load(object sender, EventArgs e)
    {
    textBox1.Font = new Font(textBox1.Font, FontStyle.Bold | FontStyle.Italic | FontStyle.Underline);
    }

  37. #37

    Lightbulb تغییر رنگها و شمای محیط کدنویسی ویژوال استادیو

    گاهی بد نیست برای تنوع هم که شده ظاهر محیط کدنویسی رو از حالت یکنواخت و سفید همیشگی تغییر بدیم.
    اینکار رو میتونید خودتون بسادگی انجام بدید و راحتتر از اون اینکه فایل تنظیمات رو از سایر سایتها (مانند سایت زیر ) دانلود و استفاده کنید:‌
    http://idehotornot.ning.com
    پس از دانلود فایل مورد نظر، جهت اعمال تغییرات در ویژوال استادیو مراحل زیر رو طی کنید :
    Tools(menu)->Import and Export settings->Import...
    عکس های ضمیمه عکس های ضمیمه

  38. #38

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

    برای مثال :
    string path = Environment.GetFolderPath(Environment.SpecialFolde  r.ProgramFiles);
    سایر مسیرها قابل دستیابی با این روش :
    Desktop, MyDocuments, System, ...
    بنقل از : https://barnamenevis.org/showpost.php?p=468371&postcount=3

  39. #39

    خواندن و نوشتن فایل به صورت unicode با استفاده از richTextBox

    // read text file
    richTextBox1.LoadFile(@"C:\Log.txt", RichTextBoxStreamType.UnicodePlainText);
    // save text file
    richTextBox1.SaveFile(@"C:\Log.txt", RichTextBoxStreamType.UnicodePlainText);

  40. #40

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

    using System.Runtime.InteropServices;

    [DllImport("user32.dll")]
    static extern int ReleaseCapture();
    [DllImport("user32.dll", EntryPoint = "SendMessageA")]
    static extern int SendMessage(int hwnd, int wMsg, int wParam, object lParam);
    private const int WM_NCLBUTTONDOWN = 161;

    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
    ReleaseCapture();
    SendMessage(this.Handle.ToInt32(), WM_NCLBUTTONDOWN, 2, 0);
    }

صفحه 1 از 14 12311 ... آخرآخر

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

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

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