PDA

View Full Version : ساخت textBox اختصاصی



rnm123
پنج شنبه 14 خرداد 1388, 12:55 عصر
سلام . من میخواستم یک textBox اختصاصی درست کنم که مثلا خاصیتی توی اون تعریف کنم که فقط عدد را قبول کند یا خاصیت های دیگر . میخواستم از دوستان بپرسم برای اینکار نوع پروژه را چه چیزی باید انتخاب کنم و چطوری از کلاس textBox خود ویندوز ارث بری کنم که دیگر خاصیت های آن از بین نرود ( فقط میخواهم یک سری امکانات به کنترل textBox ویندوز اضافه کنم ) . اگر در این مورد راهنماییم کنید ممنون میشوم.

h.jaza
پنج شنبه 14 خرداد 1388, 13:04 عصر
نیازی به انجام کارهای پیچیده نیست، می تونید خیلی ساده به جای TextBox از MaskedTextBox استفاده کنید و بعد با تعریف ماسک مورد نظر به هدف خودتون برسید یا اگر این کار زیاد شما رو محدود می کنه همون تکست باکس رو با نوشتن تعاریف مورد نظر در رویداد های خاص (مثلا KeyPress) خصوصی سازی کنی.

h_r_sh
پنج شنبه 14 خرداد 1388, 13:28 عصر
نوع پروژه مي تونه class library باشه. يه component اضافه كن و :




using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Windows.Forms;

namespace c_TextBox
{
public partial class _ctb : TextBox
{
public _ctb()
{
InitializeComponent();
}

public _ctb(IContainer container)
{
container.Add(this);

InitializeComponent();
}

protected override void OnEnter(EventArgs e)
{
base.SelectAll();
base.BackColor = System.Drawing.Color.Yellow;
}


protected override void OnKeyPress(KeyPressEventArgs e)
{
if (!(char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar) || (e.KeyChar == (char)46)))
{
e.Handled = true;
}
}
}
}



يه نمونه خوب هم تو آدرس زير هست:

http://barnamenevis.org/forum/showthread.php?p=487950&posted=1#post487950

NewFoxStudent
پنج شنبه 14 خرداد 1388, 13:37 عصر
باید یه پروژه از نوع WindowsFormsControlLibrary ایجاد کنی
وقتی این پروژه رو ایجاد میکنی به صورت پیش فرض یک UserControl توی اون قرار داره
میتونید توی صفحه کد تغییرات زیر رو اعمال کنید تا کلاس اصلی پروژه به TextBox تغییر کنه


public partial class UserControl1 : UserControl

این خط رو به شکل زیر تغییر بدید


public partial class UserControl1 : TextBox

h.jaza
پنج شنبه 14 خرداد 1388, 13:41 عصر
همیشه برای رسیدن به خدا راه های زیادی وجود داشته و داره...

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

پ ن: این رو گفتم که از جواب های داده شده زیاد گیج نشی...

mohsen_csharp
پنج شنبه 14 خرداد 1388, 19:00 عصر
http://barnamenevis.org/forum/showpost.php?p=712339&postcount=2