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

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

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  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
    کاربر دائمی آواتار javad_r_85
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    590

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

    نقل قول نوشته شده توسط sinpin مشاهده تاپیک
    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 به آبجکت فعلی از فرم اشاره دارد.





    کد صحیح آن به این صورت است که ابتدا یک timer1 و یک button در فرم قرار داده و سپس کدهای زیر را به آن اضافه میکنیم.

    private void button1_Click(object sender, EventArgs e)
    {


    timer1.Enabled = true;

    }




    private void timer1_Tick(object sender, EventArgs e)
    {

    this.Opacity -= 0.03;
    {
    آخرین ویرایش به وسیله Amir Oveisi : جمعه 25 تیر 1389 در 00:32 صبح دلیل: لطفا کد های خود را بین تگ کد c-sharp قرار دهید.

  9. #9

    نقل قول: 1001 نکته در سی شارپ

    ساخت یک ستون AutoNumber برای گرید ویو

    کد HTML:
     private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                dataGridView1.Rows[e.RowIndex].Cells[0].Value = e.RowIndex + 1;
            }

  10. #10

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

    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

  11. #11

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

    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);
    }

  12. #12

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

    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 ();
    }

  13. #13

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

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

  14. #14

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

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

  15. #15

    انتقال آیتمهای Enum به یک ListBox


    public enum Days { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
    System.Type t = typeof(Days);
    foreach (string s in Enum.GetNames(t))
    {
    listBox1.Items.Add(s);
    }

  16. #16

    تعریف عملگر های سفارشی

    class MyClass
    {
    private int number ;
    public MyClass(int _number)
    {
    this.number = _number;
    }
    public static MyClass operator+ (MyClass c1, MyClass c2)
    {
    return new MyClass(c1.number + c2.number);
    }
    }

    تعریف یک Operator overloading همیشه باید بصورت Static و Public باشد و مقدار برگشتی آن نیز نمیتواند void باشد.

    .

  17. #17

    چگونه یک کلاس را مهر وموم کنیم؟

    کافی است در اعلان کلاس و بعد از Access modifier از کلمه کلیدی sealed استفاده کنیم.

    public sealed class MyClass{}
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:41 عصر

  18. #18
    کاربر دائمی آواتار danial82
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    iran_tehran
    پست
    531

    Cool محاسبه زمان اجرای قسمتی برنامه

    از کلاس stopwatch که در فضای نام System.Diagnostics قرار داره هم می تونید استفاده کنید.

    // Create an instance of the new StopWatch class
    Stopwatch myWatch = new Stopwatch();

    // Start the timer
    myWatch.Start();

    //Code Here...

    // Now we can stop the timer and display the elapsed time along
    myWatch.Stop();
    elapsedTimeTextLabel.Text = myWatch.ElapsedMilliseconds.ToString() ;

    به نقل از ezamnejad کاربر همین سایت

  19. #19
    کاربر دائمی آواتار danial82
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    iran_tehran
    پست
    531

    طریقه استفاده از کامژوننت timer


    private void Form1_Load(object sender, EventArgs e)
    {
    //تنظیم زمان تکرار بر حسب میلی ثانیه
    timer1.Interval = 1000;
    timer1.Start();
    timer1_Tick(sender, e);
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
    label1.Text = DateTime.Now.ToString();
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 15:25 عصر

  20. #20
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044

    استفاده از متد Find در Generic List

    با فرض اينكه lstTerm ليستي از كلاس Term است مي خواهيم ترمي را پيدا كنيم كه Id آن برابر با 88-87 باشد.
    lstTerms.Find(delegate(Term t) { return t.Id = "87-88"; });
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 16:17 عصر

  21. #21
    کاربر دائمی آواتار رافعی مهدی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Sydney
    سن
    40
    پست
    272

    Smile رفع چشمك و پرش تصوير

    چنانچه براي انجام كارهاي گرافيكي خود از مجموعه ي +GDI استفاده مي كنيد، بسيار محتمل است كه به هنگام انجام اعمال گرافيكي سنگين مثل Pan و Zoom تصوير يا ترسيمات گرافيكي با پرش يا چشمك زدن هاي متوالي مواجه شويد. براي رفع اين مشكل مي توانيد خاصيت DoubleBuffered مربوط به Form يا UserControl اي كه در آن ترسيمات انجام مي گيرند را true كنيد.
    براي اطلاعات بيشتر در MSDN به ايندكس double buffering مراجعه كنيد.

  22. #22
    کاربر دائمی آواتار Esmail Solhkhah
    تاریخ عضویت
    مهر 1385
    محل زندگی
    بورکینافاسو
    پست
    1,774

    Post نقل قول: 1001 نکته در سی شارپ

    خیلی وقتا نیاز داریم تو فرمهایی که به نحوی از دیتا گرید استفاده کردن به کاربر اجازه بدیم بتونه اونا رو چاپ کنه !
    فایل ضمیمه حاوی یه کلاس هست که به عنوان سازنده دیتا گرید رو میگیره و میتونه با دومتد یا چاپ کنه یا پیش نمایش رو نشون بده
    در ضمن امکانات دیگه ای هم مثل نوشتن متن رو هدر گزارش و .. داره که اونا رو هم تو فایل ضمیمه قرار دادم. تو فایل Usage.txt
    فایل های ضمیمه فایل های ضمیمه

  23. #23
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    اصفهان-تهران
    پست
    212

    نقل قول: 1001 نکته در سی شارپ

    پاک کردن هم زمان تمام TextBox ها :
    بعضی وقتا تعداد TextBox ها توی فرمتون خیلی زیاده و سخته که هر بار تمام اونها رو پاک کنید پس از روش زیر استفاده کنید تا تمام TextBox ها را یکجا Clear کنید.


    public void ClearTextBoxs()
    {
    foreach (Control txt in this.Controls)
    {
    if (txt.GetType().Name == "TextBox")
    txt.Text = "";
    }
    }



  24. #24
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    اصفهان-تهران
    پست
    212

    فشرده سازی پیام ها هنگام استفاده WebService ها

    آخرین ویرایش به وسیله mary3541 : دوشنبه 25 شهریور 1387 در 21:29 عصر دلیل: عنوان

  25. #25

    Lightbulb معرفي ابزارهايي براي مستندسازي كد و ديتابيس

    بهتر است هميشه پروژه‌هاي خود را مستند سازي كنيم تا زماني كه به دلايل مختلف نياز به تغيير يا استفاده مجدد آنها باشد بتوانيم به راحتي كدها و قسمتهاي مختلفي كه نوشته ايم را سريعا به ياد آوريم يا مرور كنيم. براي اينكار ابزارهاي بسيار زيادي وجود دارد اما برخي از آنها كاربردي و مفيدند. اين جدول كه در سايت WikiPedia وجود دارد مقايسه جالبي را بين اين برنامه ها و امكاناتي كه ارائه مي‌كنند نشان داده است.
    Comparison of documentation generators

    For Code

    Doxygen
    يكي از بهترين برنامه براي مستند سازي كد كه امكانات زيادي دارد، به فرمتهاي مختلفي خروجي مي‌دهد و بسياري از زبانها و سيستم‌عامل هاي مختلف را نيز پشتيباني مي‌كند.
    فرمتهاي خروجي HTML - CHM - RTF - PDF - LaTeX - PostScript - man pages - XML
    مستند سازي كد را به صورتي ساده تر انجام مي‌دهد. و ظاهري زيبا دارد.
    فرمتهاي خروجي: HTML - CHM - RTF - PDF - XML

    قابليت اضافه شدن در محيط VisualSyudio را نيز دارا مي‌باشد و مي‌توانيد در همان محيط به توليد مستندات بپردازيد
    فرمتهاي خروجي: HTML - CHM

    با پيروري از قواعدي ساده در Commentها مي‌توانيد تغييرات مستقيمي در مستندات داشته باشيد مثلا كدام كلمات عنوان يا زير عنوان باشد يا كدام توپر(Bold) چه قسمتهايي بالت دار باشند
    فرمتهاي خروجي: HTML - CHM

    مستنداتي مشابه MSDN توليد مي‌كند. و آنها را در MSDN سيستم اضافه مي‌كند.
    فرمتهاي خروجي: HTML - CHM - RTF - XML


    For DataBase
    اين برنامه ها با اتصال به سرور و ديتابيس مورد نظر كليه اطلاعات آنرا (به جز داده‌هاي جداول) اعم از جداول و مشخصات فيلدها، توابع، كاربران، قوانين تعيين شده و ... را مستند سازي كرده و به صورت مرتب و مجتمع تحويل مي‌دهد.

    DB Scribe
    اين برنامه اطلاعات مربوط به ديتابيس را مستندسازي مي‌كند.
    فرمتهاي خروجي: HTML - CHM - RTF

    BI Documenter
    اين برنامه اطلاعات مربوط به ديتابيس را مستندسازي مي‌كند. دياگرام‌هاي آنرا رسم مي‌كند. مستندات آن ظاهر زيباتري دارند
    فرمتهاي خروجي: HTML - CHM

    آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
    آن لحظه،
    لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .

    برنولی

  26. #26

  27. #27
    کاربر دائمی آواتار sds1920
    تاریخ عضویت
    تیر 1388
    محل زندگی
    اصفهان
    سن
    34
    پست
    483

    افزودن خاصیت Radio Button به یک Listview

    ابتدا خاصیت CkeckBoxes رادر Listview برابر با True قرار دهید.سپس کدهای زیر را در متد رویداد ItemChecked بنویسید.

    private  int LastIndexChecked;
    private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e)
    {

    if (listView1.CheckedIndices.Count==2)
    {
    //UnCheck before Item.
    listView1.Items[LastIndexChecked].Checked = false;

    //set Last index selected.
    LastIndexChecked = listView1.CheckedIndices[0];
    }
    else
    //for first step.
    if(listView1.CheckedIndices.Count==1)
    {
    LastIndexChecked = listView1.CheckedIndices[0];
    }
    }

  28. #28
    کاربر دائمی آواتار sds1920
    تاریخ عضویت
    تیر 1388
    محل زندگی
    اصفهان
    سن
    34
    پست
    483

    Rename کردن یک فایل در C#‎

    در c شارپ تابعی با نام Rename وجود ندارد یا حداقل من ندیدم.ولی می توانید برای Rename کردن از کد زیر استفاده کنید.

    System.IO.File.Move("File Name", "New File Name");


    توجه کنید که آدرس های File Name و New File Name باید یکسان باشد.
    برای مثال عکسی با نام Picture1 را به Picture2 تغییر میدهیم:

    System.IO.File.Move(@"C:\Picture1.jpg",@"C:\Picture2.jpg");

  29. #29
    کاربر دائمی آواتار navid_8x
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    قزوین
    پست
    130

    تشخیص روشن بودن Caps Lock و Num Lock و Scroll Lock بدون API

    در فرم ها می شه از تابع IsKeyLocked استفاده کرد.
    IsKeyLocked(Keys.NumLock);
    IsKeyLocked(Keys.CapsLock);
    IsKeyLocked(Keys.Scroll);

    و در console از خود کلاس Console
                    Console.NumberLock;
    Console.CapsLock;

    که از نوع بولی هستن.

  30. #30
    کاربر دائمی آواتار saber187518
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    همین دور و برا
    پست
    311

    نقل قول: 1001 نکته در سی شارپ

    اگه بخوایم داده تکراری وارد وارد جدول نکنیم. میشه از قطعه کد زیر کمک گرقت.

    SqlDataAdapter1.Fill(DataSet1, "m1")
    DataGridView1.DataSource = DataSet1
    DataGridView1.DataMember = "m1"

    که البته باید قبل از دستور insert و بعد از دستور select قرار بگیره.
    بعد با یک جستجوی ساده روی اطلاعات دیتا گرید میشه فهمید که اطلاعات تکراری هست یا نه.
    ---------------------------------------------------
    اللهم العن قاتلی فاطمه الزهرا

  31. #31
    کاربر دائمی آواتار ایمان مدائنی
    تاریخ عضویت
    آذر 1386
    محل زندگی
    تهران
    پست
    1,463

    نقل قول: 1001 نکته در سی شارپ

    براي اينكه بتونيم با زدن اينتر فوكوس رو تغير بديم از كد زير استفاده مي كنيم

    private void textbox1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.Enter)
    {
    SendKeys.Send("{TAB}");
    }
    }



    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 27 خرداد 1394 در 03:28 صبح

  32. #32
    کاربر دائمی آواتار ایمان مدائنی
    تاریخ عضویت
    آذر 1386
    محل زندگی
    تهران
    پست
    1,463

    نقل قول: 1001 نکته در سی شارپ

    براي باز كردن ماشين حساب ويندوز از طريق كد ، از كد زير استفاده مي كنيم :
    System.Diagnostics.Process.Start("calc");


    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 27 خرداد 1394 در 03:29 صبح

  33. #33
    کاربر دائمی آواتار ایمان مدائنی
    تاریخ عضویت
    آذر 1386
    محل زندگی
    تهران
    پست
    1,463

    نقل قول: 1001 نکته در سی شارپ

    براي اينكه كاربر نتونه بازدن alt+f4 فرم رو ببنده از كد زير استفاده مي كنيم :

    private void form1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.Alt && e.KeyCode == Keys.F4)
    {
    e.SuppressKeyPress = true;
    }
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 27 خرداد 1394 در 03:30 صبح

  34. #34
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    ایران
    سن
    38
    پست
    467

    نمایش پیغام قبل از بسته شدن فرم (با هر طریق)

    نقل قول نوشته شده توسط iman_lovely666 مشاهده تاپیک
    براي اينكه كاربر نتونه بازدن alt+f4 فرم رو ببنده از كد زير استفاده مي كنيم :

    private void form1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.Alt && e.KeyCode == Keys.F4)
    {
    e.SuppressKeyPress = true;
    }
    }
    این کد رو ببینید:

    protected override void OnClosing(CancelEventArgs e)
    {
    if (MessageBox.Show("آیا برای خروج از برنامه اطمینان دارید؟", "اخطار", MessageBoxButtons.YesNo) != DialogResult.Yes)
    e.Cancel = true;
    else
    {
    base.OnClosing(e);
    }
    }

    خیلی بهینه تره
    نیاز هم نداره که ALT+F4 هم چک بشه ، همه انواع بسته شدن ها رو (البته بجز اتمام کار پروسس) شامل میشه
    تازه میتویند کلید ها رو هم چک کنید
    ضمنا فقط کافیه داخل فرم کپی کنید
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 27 خرداد 1394 در 03:34 صبح

  35. #35
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    ایران
    سن
    38
    پست
    467

    براي اينكه بتونيد با زدن اينتر فوكوس رو تغير بديم از كد زير استفاده کنید

    نقل قول نوشته شده توسط iman_lovely666 مشاهده تاپیک
    براي اينكه بتونيم با زدن اينتر فوكوس رو تغير بديم از كد زير استفاده مي كنيم

    private void textbox1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.Enter)
    {
    SendKeys.Send("{TAB}");
    }
    }
    اینم یه امتحانی بکنید

    private void ctrl_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (e.KeyChar == (char) Keys.Enter)
    {
    e.Handled = true;
    Control ctrl = sender as Control;
    SelectNextControl(ctrl, true, true, true, true);
    }
    }

    اینو برای همه کنترل های فرمتون می تونید یکجا استفاده کنید
    یعنی برای رویداد KeytPress تک تک کنترل ها مانند تکست باکس ها ، چک باکس ها ، کامبو باکس ها و ... انتخاب کنید
    اینطوری دیگه لازم نیست برای هر کدومشون یک رویداد مجزا بنویسید
    خودش تشخیص میده و میره به کنترل بعدی
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 27 خرداد 1394 در 03:37 صبح

  36. #36

  37. #37
    کاربر دائمی آواتار saeed-kh
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مازندران - بابل
    پست
    148

    حل مشکل خطای Concurrency violation

    پست های زیادی این مشکل را مطرح کردند.آخرشم تو این سایت به جواب نرسیدم.
    لازم دیدم نتیجه رو اینجا برای دوستانم بزارم.

    concurrency violation the updatecommand affected 0 of the expected 1 records



    به قسمت TableAdapter در Dataset بروید.
    دستورات مربوط به Update , Delete را اصلاح کنید. به این صورت که در قسمت Where فقط شرط مربوط به کلید را باقی گذاشته و بقیه شروط را حذف کنید.

    Syed Sami Naushahi
    1. Open the DataSet in the designer.
    2. Click on the adapter portion of the relevant table. For example in my case I clicked on DoctorTableAdopter.
    3. The properties window will show the UpdateCommand and DeleteCommand for this adopter.
    4. Expand Update and Delete commands by clicking the + sign on their left. This would show the CommandText property for these commands.
    5. Click on the value entered against CommandText. It will show you the SQL statement for that command. Edit its WHERE clause and remove all other columns except the columns included in your primary key. For example in my case a rather lengthy WHERE clause (which was trying to compare more than a dozen columns) was modified to WHERE (Doctor_ID = @Original_Doctor_ID).
    منبع:MSDN.com
    آخرین ویرایش به وسیله Mahmoud.Afrad : جمعه 30 خرداد 1393 در 13:43 عصر

  38. #38

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

    using System.Data.Sql;

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

  39. #39

    افزودن و حذف کردن یک برنامه به 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);
    }

  40. #40

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

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

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

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

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

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

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