نمایش نتایج 1 تا 2 از 2

نام تاپیک: خطای ایجاد شده در ساخت کنترل جدید

  1. #1

    خطای ایجاد شده در ساخت کنترل جدید

    من برای ساخت کنترل تکست باکس جدید یک Usercontrol ایجاد کردم
    در زمان Build کردن با خطای زیر مواجه میشم
    No overload for 'ExtdTextBox_KeyPress' matches delegate 'KeyPressEventHandler
    ممنون میشم راهنمایی کنید

  2. #2

    نقل قول: خطای ایجاد شده در ساخت کنترل جدید

    برای ساخت کنترول TextBox از کلاس استفاده کنید نه از Uusercontrol
    به طور مثال این کادر متن سفارشی برای کادر متن پولی هستش
    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Globalization;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace Aramestan.Controller
    {
    public class TxtMoney : TextBox
    {
    protected override void OnKeyPress(KeyPressEventArgs e)
    {
    base.OnKeyPress(e);
    if (!(char.IsControl(e.KeyChar) || char.IsDigit(e.KeyChar)))
    {
    e.Handled = true;
    }
    //NumberFormatInfo fi = CultureInfo.CurrentCulture.NumberFormat;

    //string c = e.KeyChar.ToString();
    //if (char.IsDigit(c, 0))
    // return;

    //if ((SelectionStart == 0) && (c.Equals(fi.NegativeSign)))
    // return;

    //// copy/paste
    //if ((((int)e.KeyChar == 22) || ((int)e.KeyChar == 3))
    // && ((ModifierKeys & Keys.Control) == Keys.Control))
    // return;

    //if (e.KeyChar == '\b')
    // return;

    //e.Handled = true;
    }

    protected override void OnTextChanged(EventArgs e)
    {
    try
    {
    base.OnTextChanged(e);

    NumberFormatInfo provider = new NumberFormatInfo
    {
    NumberDecimalDigits = 0
    };
    this.Text = decimal.Parse(this.Text, NumberStyles.AllowThousands).ToString("N", provider);
    base.Select(this.Text.Length, 0);
    }
    catch
    {
    }
    }

    protected override void OnEnter(EventArgs e)
    {
    BackColor = Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
    base.OnEnter(e);
    }

    protected override void OnLeave(EventArgs e)
    {
    BackColor = Color.White;
    base.OnLeave(e);
    }
    }
    }

    به این روش کادر متن تمام امکانات خودش داره ولی اون روش خیلی اذیت میشید

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

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