PDA

View Full Version : چگونگی انتخاب بخشی از TextBox



vahid271
شنبه 25 دی 1389, 19:13 عصر
سلام دوستان.

یه سوال داشتم در مورد TextBox
میخوام ببینم توی یه تکس باکس چجوری میشه وقتی که فوکوس میره روی اون تکس باکس فقط بخشی از متن داخل تکس باکس انتخاب بشه، مثل کامپوننت DateBox

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

mehdi.mousavi
شنبه 25 دی 1389, 19:26 عصر
سلام.
کلاس TextBox یه متود داره به اسم Select که برای اینکار هستش:


textBox.Select(0, 5);

یعنی از ابتدای نوشته، بطول 5 کاراکتر رو Select کن. بنابراین کافیه تا وقتی Focus روی اون افتاد، با استفاده از متود زیر به هدفتون برسید.

موفق باشید.

پاورقی: اگر قراره اینکارو بیش از یک بار در برنامه انجام بدید، یه کلاس از TextBox مشتق کنید و در OnEnter اون، این کارو انجام بدید. سپس هر جا چنین TextBox ای خواستید، از کلاس جدید استفاده کنید.

vahid271
شنبه 25 دی 1389, 19:58 عصر
ممنونم دوست عزیز.

میشه این روشی که تو پاورقی گفتین رو با یه مثال با کد برام بذارید، ممنون میشم...
من خیلی لازم میشه که تو برنامم این کارو بکنم
ممنونم

MortezaGity
شنبه 25 دی 1389, 20:10 عصر
داخل textBox1 رشته رو بریز و بعد این کد رو داخل یک button بذار. نتیجه همون چیزی هس که میخای



textBox1.Select(0, 3);
textBox1.Focus();

vahid271
شنبه 25 دی 1389, 20:20 عصر
داخل textBox1 رشته رو بریز و بعد این کد رو داخل یک button بذار. نتیجه همون چیزی هس که میخای



textBox1.Select(0, 3);
textBox1.Focus();

ممنونم دوست قبلی هم همینو گفت!
من الان میخوام ببینم چجوری کلاس درست کنم که راحت تر باشه؟

vahid271
شنبه 25 دی 1389, 20:58 عصر
آقا مرتضی من توی فرمم یه تکس باکس دارم که وقتی فوکوس میره روش 2 کاراکتر آخرش انتخاب میشه حالا میخوام وقتی کاربر فلش چپ رو میزنه به جای اون دو تا کاراکتر کاراکترهای 5و6 انتخاب بشن(البته بگم که تکس باکسم دارای 10 کاراکتر هستش) من برای این کار کد زیر رو نوشتم ولی جواب نمیده! علامت موس جابجا میشه ولی کاراکترهای 5و6 انتخاب نمیشن!!!
مشکلش چیه؟

private void textBox1_KeyDown_1(object sender, KeyEventArgs e)
{
if (e.KeyValue == 37)
{
if (textBox1.SelectionStart > 7)
{
textBox1.Select(5, 2);
}
else if (textBox1.SelectionStart > 4)
{
textBox1.Select(2, 2);
}
else
{
textBox1.Select(2, 2);
}
}
}