PDA

View Full Version : مشکل با تکس باکس سفارشی



lovee20002002
یک شنبه 01 دی 1392, 21:12 عصر
سلام
من چند تا تکس باکس سفارشی از اینجا و ... دانلود کردم هیچکدوم درست کار نمیکنه
من الان از تکس باکس نیک آموز استفاده میکنم که توش keydown کار نمیکنه باز الان من یه مشکل بزرگ دارم اونم اینکه اگه بخوام بعد از اینتر کدوم تکس باکس با باتم سلکت بشه بدون استفاده از کی دان چکار کنم ممنون میشم جواب بدید

davidrobert
یک شنبه 01 دی 1392, 21:45 عصر
سلام دوست عزیز یک نمونه سورس برای ساختن تکس باکسی سفارسی هستش که عدد فقط میگرد فقط این رو بگم برای ساخت تکس باکس سفارشی بایستی از کلاس استفاده کنید یعنی یک کلاس ایجاد کنید و نوع کلاس رو تکس باکس قرار بدید وقتی کد ها رو نوشتید برنامه رو ریبلد کنید وقتی ریبلد کردید در قسمت ابزار بالا که اسم برنامه قرار داره ابزار اضافه میشه و شما میتوانید به فرم خود اضافه کنید این هم نمونه کد برای عدد گرفتن تکس باکس با قابلیت ، عوض شدن رنگ تکس باکس وقتی خالی رها میشه و وقتی پور میشه به رنگ اول خود در می آید ، عدد فقط وارد کردن و امکان اینتر زدن بر روی تکس باکس و رفتن به تکس باکس بعدی.
این هم نمونه سورس که خودم استفاده میکنم ازش.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel;

namespace Canopy_Accounting_Software
{
class ClsTextBoxNumber : TextBox
{
protected override void OnLeave(EventArgs e)
{
base.OnLeave(e);
if (this.Text.Trim() == "")
this.BackColor = Color.Red;
else
this.BackColor = Color.White;
}

protected override void OnKeyPress(KeyPressEventArgs e)
{
base.OnKeyPress(e);
if (e.KeyChar == 8)
{
return;
}
if (!System.Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}

protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);
if (this.Text != "")
this.BackColor = Color.White;
}
[DefaultValue(true)]
public bool TreatEnterAsTab { get; set; }

public ClsTextBoxNumber()
{
TreatEnterAsTab = true;
}
private const int WM_KEYDOWN = 0x100;
public override bool PreProcessMessage(ref Message msg)
{
if (TreatEnterAsTab && (!this.Multiline || this.AcceptsReturn) &&
Control.ModifierKeys == Keys.None &&
msg.Msg == WM_KEYDOWN && (Keys)msg.WParam.ToInt32() == Keys.Enter)
{
msg.WParam = (IntPtr)Keys.Tab;
}
return base.PreProcessMessage(ref msg);
}
}
}