PDA

View Full Version : سوال: ساخت textbox سفارشی



aliburnout
سه شنبه 12 بهمن 1389, 00:13 صبح
سلام
من با کمک 2 تا از دوستان(hossein2007 و ACorvinus ) تونستم یه text box بسازم که چند تا خصوصیت اضافی داشته باشه.
حالا می خوام به خاصیت دیگه هم اضافه کنم که کدش رو بلد نیستم:ناراحت:
میخوام هر وقت داخل text box دکمه enter خورد مثل دکمه tab عمل کنه یعنی بره به tabindex بعدی
اگه راهنمایی کنید ممنون میشم

mehdi.mousavi
سه شنبه 12 بهمن 1389, 01:02 صبح
سلام.
برای اینکار می تونید بدین شکل عمل کنید. یه Handler برای KeyPress تعریف کنید، اگر کلید فشرده شده Enter بود (کد 13)، اونوقت با استفاده از کد زیر Focus رو به کنترل بعدی منتقل کنید:


GetNextControl(ActiveControl, true).Focus();

موفق باشید.

aliburnout
سه شنبه 12 بهمن 1389, 08:25 صبح
ممنون از راهنمایی اگه میشه بیشتر توضیح بده در حد مبتدی
فعلا این کد رو دارام

using System;
using System.Text;
using System.Windows.Forms;
using System.Drawing;


namespace Inherited_Controls
{
class TextBox_Base : TextBox
{
public TextBox_Base()
{
if (!DesignMode)
{
this.Font = new System.Drawing.Font("tahoma", 9, System.Drawing.FontStyle.Regular);
this.RightToLeft = RightToLeft.No;

this.Enter += new EventHandler(_Enter);
this.Leave += new EventHandler(_Leave);
}
}

void _Enter(object sender, EventArgs e)
{
if (!DesignMode)
{
this.BackColor = Color.Yellow;
this.SelectAll();
}
}

void _Leave(object sender, EventArgs e)
{
if (!DesignMode)
{
this.BackColor = Color.White;
}
}
}
}

اگه کد رو تکمیل کردی لطفا توضیح هم بده

ASKaffash
سه شنبه 12 بهمن 1389, 08:45 صبح
سلام


public partial class MyTextBox : TextBox
{
public MyTextBox()
{
InitializeComponent();
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
e.Handled = true;
SendKeys.Send("{TAB}");
}
else
base.OnKeyPress(e);
}
}

فقط در تعجب هستم چرا دو Event دیگر را override نکرده اید ؟

aliburnout
سه شنبه 12 بهمن 1389, 09:21 صبح
دوست عزیز خیلی ممنون
با کد شما کد من هم تکمیل شد.
این چیزی هم که شما گفتین رو من بلد نیستم:گریه:
باقی کد رو هم دوستان کمک کردن اگه حوسله داری یه توضیح در حد مبتدی برام بذار.