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





اگر فرم ثبت نام برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمیشود، اینجا را کلیک کنید.





صفحه 11 از 16 نخست ... 891011121314 ... آخرین
نمایش نتایج: از 101 به 110 از 154
Like Tree3Likes

موضوع: نکات بسيار مهم در سي شارپ

  1. #101
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    حاشیه دار کردن کنترل 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 و رسم یک مستطیل امکانپذیر نیست.
  2. #102
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    سفارشی کردن پیشفرض آیتمهای قابل اضافه شدن به یک کنترل در زمان طراحی

    عجب عنوان پیچیده و مبهمی شد ! (واقعا نمیشد راحتتر از این بیان کرد)

    مثال :
    فرض کنید که کنترل منو (MenuStrip) را کاملا سفارشی کرده اید. اما در زمان طراحی این کنترل همچنان آیتمهایی از نوع ToolStripMenuItem میگیرد؛ در حالیکه شما میخواهید آیتمهایی که در زمان طراحی به آن اضافه میشوند از نوع کلاس دیگری باشد که آن را نیز سفارشی کرده اید (فرضا MyToolStripMenuItem) برای انجام اینکار باید خاصیت verbs کلاس MyMenuStrip را override کنید.

    مثال :
    using System.ComponentModel.Design;
    public override System.ComponentModel.Design.DesignerVerbCollectio n Verbs
    {
    get
    {
    DesignerVerbCollection v = new DesignerVerbCollection();
    v.Add(new DesignerVerb("Sample Verb", new EventHandler
    (SampleVerbHandler)));
    return v;
    }
    }
    private void SampleVerbHandler(object sender, System.EventArgs e)
    {
    MessageBox.Show("You clicked the test designer verb!");
    }

    If your component has common actions that are performed on it, it is often useful to expose these actions as a "verb" from the component. To see verbs in action, drop a TabControl on the VS .NET Windows Forms designer and you will see two hyperlinks show up in the property browser. One says "Add Tab" and one says "Remove Tab." As the names suggest, these actions will add or remove a tab from the TabControl. You will also see these verbs on the context menu if you right-click on the TabControl itself.


    منبع : [برای نمایش لینک باید عضو شوید. ]

    [برای نمایش لینک باید عضو شوید. ]
    چند مثال :
    [برای نمایش لینک باید عضو شوید. ]
    [برای نمایش لینک باید عضو شوید. ][برای نمایش لینک باید عضو شوید. ]
  3. #103
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

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

    برای افزودن آیکن مورد نظر خود به یک کامپوننت کافیست که موارد زیر را رعایت کنید :
    • فایل تصویر باید از نوع bitmap و دقیقا همنام کلاس اما با پسوند bmp باشد
    • اندازه ی تصویر مربوطه باید حتما 16x16 باشد وگرنه بصورت اتوماتیک برای رسیدن به آن سایز بریده خواهد شد.
    • تصویر انتخابی باید از نوع 16 رنگ باشد
    • و ...

    برای توضیحات کاملتر گوشه هایی از متن اصلی کتاب رو مشاهده میکنید :
    The Toolbox Icon
    Adding a Toolbox icon is refreshingly easy. All you need to do is add a bitmap to your project and follow
    these rules:
    • The bitmap file must have the same name as your custom control class (but with the extension
    .bmp). For example, you would use a bitmap named CustomTextBox.bmp for the
    CustomTextBox control.
    • The bitmap must be 16×16 pixels. Otherwise, it will be mangled when Visual Studio
    attempts to scale it.
    • The bitmap must use only 16 colors.
    • Once you add the bitmap file, you must use the Properties window to set the Build Action to
    Embedded Resource.

    Incidentally, it’s possible to use a toolbox icon that uses a filename that doesn’t match the name
    of your control class. In this case, you need the help of the ToolboxBitmap attribute. For example, the
    following code configures the CustomTextBox control to use a bitmap named CustomTextBox1.bmp:
    [ToolboxBitmap(typeof(CustomTextBox), "CustomTextBox1.bmp")]
    public class CustomTextBox : WebControl, IPostBackDataHandler
    { ... }

    You can also use this trick to place bitmaps in a separate subfolder in your project. For example,
    here’s how you would refer to a bitmap in a folder named Images:
    [ToolboxBitmap(typeof(CustomTextBox), @"Images\CustomTextBox1.bmp")]
    Finally, it’s also possible to steal bitmaps from core ASP.NET controls, using code like this:
    [ToolboxBitmap(typeof(System.Web.UI.WebControls.Tex  tBox))]

    If you’re creating a simple control, all you may need to do is add a set of descriptive properties
    and a toolbox icon. However, more complex controls often require other considerations. These
    range from code serialization issues (how the control tag is created when you use the Properties window)
    to control designers (advanced tools for customizing the design-time HTML your control
    renders). In the rest of the chapter, you’ll take a look at these topics.

    منبع کتاب : [برای نمایش لینک باید عضو شوید. ]
  4. #104
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    نحوه ی ایجاد و تخصیص ToolTip در زمان اجرا

    private void Form1_Load(object sender, EventArgs e)
    {
    ToolTip toolTip = new ToolTip();
    toolTip.SetToolTip(button1, "Salam");
    }
  5. #105
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    طریقه استفاده از کامپوننت 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();

    }
  6. #106
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

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

    private void Form1_Load(object sender, EventArgs e)
    {
    NotifyIcon notify = new NotifyIcon();
    notify.Icon = this.Icon;
    notify.Visible = true;

    // duration of show baloon as milisecond
    int n = 3000;

    // show baloon
    notify.ShowBalloonTip(n, "Hi", "Salam Donya!", ToolTipIcon.Info);

    //set an event handler
    notify.MouseClick += new MouseEventHandler(notify_MouseClick);
    }

    void notify_MouseClick(object sender, MouseEventArgs e)
    {
    MessageBox.Show("man click shodam!");
    }
  7. #107
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    آغاز کار با کامپوننت ErrorProvider

    از این کامپوننت برای نمایش پیغامهای خطا و هشدار در UI استفاده میشود.

    private void textBox1_Leave(object sender, EventArgs e)
    {
    ErrorProvider ep = new ErrorProvider();
    if (string.IsNullOrEmpty(textBox1.Text))
    ep.SetError(textBox1, "نمیتواند خالی باشد");
    else
    ep.SetError(textBox1, "");
    }
  8. #108
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    آشنایی با BackgroundWorker و دستکاری عناصر UI

    در مثال زیر به کمک یک BackgroundWorker میخواهیم یک ListBox را پر کنیم :
    ابتدا یک BackgroundWorker بنام worker و یک button و listBox به فرم خود اضافه کنید.
    delegate void MyDelegate(string s);

    void worker_DoWork(object sender, DoWorkEventArgs e)
    {
    MyDelegate md = new MyDelegate(AddItems);
    for (int i = 0; i < 10; i++)
    {
    this.Invoke(md, (object)("ASync" + i.ToString()));
    System.Threading.Thread.Sleep(500);
    }
    }

    private void AddItems(string s)
    {
    listBox1.Items.Add(s);
    }

    private void btnASync_Click(object sender, EventArgs e)
    {
    listBox1.Items.Clear();
    worker.RunWorkerAsync();
    }

    مثال بالا + مقایسه آن با حالت بدون استفاده از BackgroundWorker ضمیمه شده است.
    [برای نمایش لینک باید عضو شوید. ]
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip BGWorkerDemo.zip (12.8 کیلو بایت, این فایل 10 مرتبه دانلود شده است )
  9. #109
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    آموزش کار کردن با BackgroundWorker بصورت آسان و قدم به قدم

    این آموزش همراه با یک مثال انجام میشود.
    (توجه : در بهینه نبودن این مثال شک نداشته باشید چون فی البداهه و صرف آموزش نوشته شده است)

    مثال - میخواهیم تمامی فایلهای موجود در پوشه ی ویندوز را توسط یک thread پشت زمینه (مستقل از UI Thread) در یک لیست باکس نمایش دهیم.

    بلافاصله و بدون مقدمه؛ ابتدا یک آبجکت از نوع BackgroundWorker بسازید و در زمان کلیک شدن یک دکمه مقادیر آن را به شکل زیر تغییر دهید :
    BackgroundWorker worker = new BackgroundWorker();

    private void button1_Click(object sender, EventArgs e)
    {
    worker.WorkerReportsProgress = true;
    worker.DoWork += new DoWorkEventHandler(worker_DoWork);
    worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged );
    worker.RunWorkerAsync(new DirectoryInfo(@"C:\Windows"));
    }

    خط آبی شده حاکی از آن است که worker میتواند در زمان اجرا میزان پیشرفت خود را گزارش کند(که باعث توانایی کار کردن با عناصر UI بصورت مستقیم و بدون استفاده از delegate میشود)
    سپس ایونت هندلرها رو تخصیص داده
    و در خط آخر نیز دستور اجرای آسنکرون اون رو با یک پارامتر ورودی را صادر کردیم.

    کار زمانبری که میخواهیم در پشت زمینه انجام شود را در رویداد DoWork مینویسیم و این همان رویدادی ست که با دستور worker.RunWorkerAsync در تیکه کد قبلی تحریک میشود :
    void worker_DoWork(object sender, DoWorkEventArgs e)
    {
    DirectoryInfo primaryDir = e.Argument as DirectoryInfo;
    int i = 0;
    foreach (DirectoryInfo dir in primaryDir.GetDirectories())
    {
    foreach (FileInfo file in dir.GetFiles())
    {
    worker.ReportProgress(i++, file.FullName);
    }
    }
    }

    همانطور که مشاهده کردید در خط اول متود بالا پارامتر ورودی را در قالب یک DirectoryInfo در آوردیم که بتوانیم از آن استفاده کنیم.
    و به ازای هر فایل شناخته شده (البته در عمل : بهتر است اینکار مثلا به ازای هر 100 فایل پیدا شده انجام شود) یک گزارش از میزان پیشرفت همراه با پارامترهای شماره فایل و نام آن میفرستیم.
    و در نهایت برای منعکس کردن پیشرفتهای لحظه ای و اختصاص آنها به لیست باکس مینویسیم:
    void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
    listBox1.Items.Add(e.ProgressPercentage.ToString() + " : " + e.UserState.ToString());
    }
    توجه کنید که در کد بالا مقدار e.UserState همان آبجکتی است که در زمان DoWork ارسال کردید.
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip BGWorker2.zip (12.9 کیلو بایت, این فایل 5 مرتبه دانلود شده است )
  10. #110
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

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

    int[] numbers = { 12, 23, 34, 45, 56, 67 };
    Object[] oNumbers = new Object[numbers.Length];
    numbers.CopyTo(oNumbers, 0);
    listBox1.Items.AddRange(oNumbers);
صفحه 11 از 16 نخست ... 891011121314 ... آخرین
نمایش نتایج: از 101 به 110 از 154

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ: 0
    آخرين نوشته: 2012-02-18, 10:35 PM
  2. آسيب*پذيري Login ID در SQL Server 7.0
    توسط MspSoft در انجمن SQL Server
    پاسخ: 0
    آخرين نوشته: 2012-01-30, 12:02 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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

Content Relevant URLs by vBSEO 3.6.0 RC 2