PDA

View Full Version : ساخت کادر متن سفارشی



davidrobert
دوشنبه 08 تیر 1394, 14:45 عصر
دمت قیییییژ فراوان دوست عزیز
اما کاشکی توی پست اول روش استفاده از این کلاس هارو کامل توضیح میدادی ویا اینکه یه لینکی میزاشتی که تایپک جامعی میشد و اگر که یکی مثل من بلد نیود آنچندان وتازه شروع کرده بود راحت باشه
تنها یک پیشنهاد بود و دست مریزاد
منتظر کامپوننت ها و کلاس های بعدی و مفیدت هستم
دوست عزیز دم شما هم جیز
برای ساخت یه کامپو نت توسعه میکنم از ابزار user control استفاده نکنید چون بدرد نمیخورد به اون صورت چون وقتی از این ابزار استفاده میکنیم به صورت مثال ما کادر متن میخواهیم بسازیم ولی علاوه بر این که یه امکانات به تکس باکس شما اضافه میکنه 10 تا امکانات از تکس باکس رو از شما میگیری به همین دلیل بدرد نمیخورد استفاده از user control .
بخاطر همین ما به شما class پیشنهاد میکنیم چون خیلی بهتر هستش . طریقه ساخت کادر متن سفارشی توسط آقا رضا که من در این جا اون کادر متن ویژه رو میسازم که در تاپیک قرار داده شده. برای ساخت اول نیت میکنی و دوم کپی پست.
اول از فرم یک کلاس انتخاب میکنید به ای صورت
132726
و اسم کامپو نت خودتون رو روش قرار بدید یعنی برای تکس باکس میخواهید بنویسید.
TxtCustomize
در قسمت public class TextBoxCustomiz بیاد نوع وضعیت کلاس رو textbox انتخاب کنید.
به این صورت.
public class TextBoxCustomiz : TextBoxX
و در ادامه بیاد این دستور ها رو به کل در کلاس قرار بدید.تنها زحمت این کار کپی و پست هستش.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar.Controls;

namespace Accounting_Program_Canopy_Store_Full.Component
{
public class TextBoxCustomiz : TextBoxX
{
private Color bk;
private Color bkfocus;
private type typetextbox;

public TextBoxCustomiz()
{
this.bk = base.BackColor;
base.TextChanged += new EventHandler(this.ExtdTextBox_TextChanged);
base.KeyPress += new KeyPressEventHandler(this.ExtdTextBox_KeyPress);
base.LostFocus += new EventHandler(this.ExtdTextBox_LostFocus);
base.Enter += new EventHandler(this.ExtendTextBox_Enter);
base.KeyDown += new KeyEventHandler(this.TextBoxReza_KeyDown);
this.bkfocus = Color.FromArgb(0xcc, 0xff, 0xbd);

}

private void changelanguge(string lname)
{
foreach (InputLanguage language in InputLanguage.InstalledInputLanguages)
{
if (language.Culture.TwoLetterISOLanguageName == lname)
{
Application.CurrentCulture = language.Culture;
Application.CurrentInputLanguage = language;
}
}
}

private void ExtdTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (this.typetextbox == type.floating)
{
if ((!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) && (e.KeyChar != '.'))
{
e.Handled = true;
}
if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
{
e.Handled = true;
}
}
else if (this.typetextbox == type.numeric)
{
if (!(char.IsControl(e.KeyChar) || char.IsDigit(e.KeyChar)))
{
e.Handled = true;
}
}
else if (this.typetextbox == type.money)
{
if (!(char.IsControl(e.KeyChar) || char.IsDigit(e.KeyChar)))
{
e.Handled = true;
}
}
else if (((this.typetextbox != type.general) && (this.typetextbox == type.nonumeric)) && (char.IsDigit(e.KeyChar) || (e.KeyChar == '.')))
{
e.Handled = true;
}
}

private void ExtdTextBox_LostFocus(object sender, EventArgs e)
{
this.BackColor = this.bk;
base.Width -= 6;
base.Left += 3;
}

private void ExtdTextBox_TextChanged(object sender, EventArgs e)
{
if ((this.typetextbox == type.money) && (this.Text != ""))
{
this.Text = Convert.ToDecimal(this.Text).ToString("#,#", CultureInfo.InvariantCulture);
}
base.Select(this.Text.Length, 0);
}

private void ExtendTextBox_Enter(object sender, EventArgs e)
{
this.changelanguge("fa");
this.bk = base.BackColor;
this.BackColor = this.bkfocus;
base.Width += 6;
base.Left -= 3;
base.Select(0, this.Text.Length);
}

private void TextBoxReza_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{tab}");
}
}

[DisplayName("Type"), Category("Extended Properties"), Description("sets type TextBox"), Browsable(true)]
public type typetxt
{
get
{
return this.typetextbox;
}
set
{
this.typetextbox = value;
}
}

[Browsable(true), Category("Extended Properties"), Description("set Backcolor Focuse"), DisplayName("BackColorFocus")]
public Color WaterMarkBackColor
{
get
{
return this.bkfocus;
}
set
{
this.bkfocus = value;
base.OnTextChanged(new EventArgs());
}
}

public enum type
{
general,
nonumeric,
numeric,
money,
floating
}
}
}

حالا که اینها رو قرار دادید بیاد از منو بالا روی build بزنید.
132728
اول روی rebuild و بعد روی build بزنید تا در منو ابزار کادر متن شما ظاهر شود.
132729
مشاهده میکنید کادر متن ما آماده هستش و میتوانید از لذت ببرید. دوستان اگه کسانه از دستان همچین کامپونت های باحاله نوشن روی این تاپیک قرار بدن تا دوستان استفاده کنن.