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

نام تاپیک: قرار گرفتن کرسر در TexBox

  1. #1
    کاربر دائمی آواتار Masoome_das
    تاریخ عضویت
    تیر 1389
    محل زندگی
    تهران
    سن
    41
    پست
    199

    قرار گرفتن کرسر در TexBox

    سلام
    من می خوام یک TexBox داشته باشم که وقتی کرسر در آن وارد می شود رنگ زمینه آن عوض شود
    ایونت های زیر را هم امتحان کرده ام اما در حالتی که با Tab وارد آن می شوم هیچ ایونتی اجرا نمی شود.
    TexChanged
    MouseClick
    CursorChanged
    فایل های ضمیمه فایل های ضمیمه

  2. #2

    نقل قول: قرار گرفتن کرسر در TexBox

    تو رویداد GotFocus یا یه چیزی مثل این بنویس!

    (sender as TextBox).BackColor = Color.Red;

    و برای بازگشت به حالت قبل تو رویداد Leave کد مورد نظرتو بنویس!

  3. #3
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: قرار گرفتن کرسر در TexBox

    Enter
    Leave

  4. #4
    کاربر دائمی آواتار hamid.shekasteh
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    شیراز
    پست
    192

    نقل قول: قرار گرفتن کرسر در TexBox

    از Inheritance استفاده کنید چطور؟
    یه کلاس جدید درست کنید و از TextBox اون رو مشتق کنید و دستورات رو اونجا بنویسید.حالا پروژه رو Compile کنید و به جای اینکه تکست باک رو به فرم بندازید از اون کلاس نوشته شده یه دونه به فرم بندازید.
    این جوری هر تغییری در کد اصلی بدید تغییرات خود به خود ثبت نیشه.
    اینم نمونه کدش که من واقعا باهاش زیاد کار کردم و راضیم.شما می تونید بعضی event هاش رو پاک کنید.


    class txt:TextBox
    {
    bool _Number = false;
    char[] _Chars;
    bool _Seprator = false;
    public char[] Chars
    {
    get
    {
    return _Chars;
    }
    set
    {
    _Chars = value;
    }
    }
    public Boolean Number
    {
    get
    {
    return _Number;
    }
    set
    {
    _Number = value;
    }
    }
    public bool Seprator
    {
    get
    {
    return _Seprator;
    }
    set
    {
    _Seprator = value;
    }
    }
    protected override void OnTextChanged(EventArgs e)
    {
    string strHelper = Text;
    try
    {
    if (Seprator && (!string.IsNullOrEmpty(strHelper)))
    {
    if (Convert.ToDecimal(strHelper) >= 0)
    {
    strHelper = string.Format("{0:N0}", Int64.Parse(strHelper.Replace(",", "")));
    //Select(Text.Length, 0);
    }
    else//mines
    {

    strHelper = strHelper.Remove(0, 1);
    strHelper = string.Format("{0:N0}", Int64.Parse(strHelper.Replace(",", "")));
    strHelper = "-" + strHelper;
    //Select(Text.Length, 0);
    }
    }
    Text = strHelper;
    Select(Text.Length, 0);
    }
    catch
    {
    }
    finally
    {
    base.OnTextChanged(e);
    }
    }
    protected override void OnKeyPress(KeyPressEventArgs e)
    {
    // base.OnKeyPress(e);
    Boolean handle= true;
    if (e.KeyChar == (char)Keys.Return)
    e.Handled = true;
    else if (char.IsControl(e.KeyChar))
    e.Handled = false;
    else if (e.KeyChar == (char)Keys.Return)
    e.Handled = true;
    else
    {
    if (Number)
    e.Handled = !(Char.IsDigit(e.KeyChar));
    else
    {
    if (Chars != null)
    {
    foreach (char ch in Chars)
    {
    if (e.KeyChar == ch)
    handle = false;
    }
    e.Handled = handle;
    }
    }
    }
    }
    protected override bool ProcessDialogKey(Keys keyData)
    {
    if (keyData == Keys.Enter)
    {
    SendKeys.Send("{TAB}");
    }
    return base.ProcessDialogKey(keyData);
    }


    protected override void OnGotFocus(EventArgs e)
    {
    this.BackColor = System.Drawing.SystemColors.InactiveCaptionText;
    base.OnGotFocus(e);
    }
    protected override void OnLostFocus(EventArgs e)
    {
    if (this.ReadOnly)
    this.BackColor = System.Drawing.SystemColors.ButtonFace;
    else
    this.BackColor = System.Drawing.Color.White;
    base.OnLostFocus(e);
    }
    private void InitializeComponent()
    {
    this.SuspendLayout();
    this.ResumeLayout(false);
    }
    }

  5. #5
    کاربر دائمی آواتار javad_r_85
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    590

    نقل قول: قرار گرفتن کرسر در TexBox

    نقل قول نوشته شده توسط Masoome_das مشاهده تاپیک
    سلام
    من می خوام یک TexBox داشته باشم که وقتی کرسر در آن وارد می شود رنگ زمینه آن عوض شود
    ایونت های زیر را هم امتحان کرده ام اما در حالتی که با Tab وارد آن می شوم هیچ ایونتی اجرا نمی شود.
    TexChanged
    MouseClick
    CursorChanged



    این کد را بنویس.

    private void textBox1_MouseHover(object sender, EventArgs e)
    {
    textBox1.BackColor = Color.Red;
    }

    private void textBox1_MouseLeave(object sender, EventArgs e)
    {
    textBox1.BackColor = Color.Blue;
    }

  6. #6
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: قرار گرفتن کرسر در TexBox

    نقل قول نوشته شده توسط javad_r_85 مشاهده تاپیک
    این کد را بنویس.

    private void textBox1_MouseHover(object sender, EventArgs e)
    {
    textBox1.BackColor = Color.Red;
    }

    private void textBox1_MouseLeave(object sender, EventArgs e)
    {
    textBox1.BackColor = Color.Blue;
    }
    تا اونجایی که من میدونم انجام یک عمل فقط زمانی اشتباه نیست که به کاربر سود برسونه.
    این کار شما چه خاصیتی داره؟
    کاربر موس رو گم نمیکنه؟

  7. #7
    کاربر دائمی آواتار Masoome_das
    تاریخ عضویت
    تیر 1389
    محل زندگی
    تهران
    سن
    41
    پست
    199

    نقل قول: قرار گرفتن کرسر در TexBox

    منون از همه دوستان با راهنمایی FastCode مشکلم حل شد.

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

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