PDA

View Full Version : دادن دستور Select به صورت خودکار به تمام TextBox ها



sg.programmer
شنبه 23 دی 1396, 17:32 عصر
سلام
چطورمیتونم به تمام TextBox های موجود در برنامه ام وقتی داخل تکس باکس کلیک میشه (رویداد Click ) دستور SelectAll را به صورت خودکار داد و مجبور نشم دستور زیر را برای تک تک تکس باکس هام درتمام فرم های موجود در برنامه ام دستور زیر را بنویسم؟


private void TextBox1_Click(object sender, EventArgs e)
{
TextBox1.SelectAll();
}

parvizwpf
شنبه 23 دی 1396, 19:00 عصر
شما یک تکست باکس customize باید بنویسی یعنی اونرو بصورت یوزر کنترل و یا ارث بری بسازی

sg.programmer
شنبه 23 دی 1396, 20:07 عصر
این روش باید تمام فرم هام دستکاری بشه (تکس باکس های قبلی حذف و جدید جایگزین بشه)
نمیشه یکجوری Override کرد؟

sg.programmer
شنبه 23 دی 1396, 20:41 عصر
با این روش درست کردم ولی نمیدونم چقدر سربار به برنامه ایجاد میکنه؟ و آیا روش خوبی هست یا خیر؟

اینجا قرار میدم تا کسیخواست استفاده کنه
protected void SelectControl(Control Ctrl)//passing the control
{
foreach (Control eachCtrl in Ctrl.Controls)//loop taking each controls
{
if (eachCtrl.Controls.Count > 0)
SelectControl(eachCtrl);
else if (eachCtrl is TextBox)
{
TbHelper.SelectAllTextOnEnter(((TextBox)eachCtrl)) ;
}
}
}

public static class TbHelper
{
// Method for use
public static void SelectAllTextOnEnter(TextBox Tb)
{
Tb.Enter += new EventHandler(Tb_Enter);
Tb.Click += new EventHandler(Tb_Click);
}

private static TextBox LastTb;

private static void Tb_Enter(object sender, EventArgs e)
{
var Tb = (TextBox)sender;
Tb.SelectAll();
LastTb = Tb;
}

private static void Tb_Click(object sender, EventArgs e)
{
var Tb = (TextBox)sender;
if (LastTb == Tb)
{
Tb.SelectAll();
LastTb = null;
}
}
}