PDA

View Full Version : سوال: انتخاب بخشی از متن تکست باکس و جابجا شدن انتخاب با زدن فلش چپ یا راست



vahid271
یک شنبه 26 دی 1389, 10:42 صبح
سلام دوستان.

کسی میدونه چجوری میتونم توی یه تکس باکس که مثلا 2 حرف آخرش انتخاب شده با زدن فلش چپ دو کاراکتر قبلی انتخاب بشن؟
یعنی با زدن فلش ها متن انتخابی در تکس باکس دو کاراکتر دو کاراکتر جابجا بشه...
با تشکر...

2ndesigner
یک شنبه 26 دی 1389, 11:23 صبح
از این کد استفاده کنید:


textBox2.SelectionStart-=2;

این کد فقط مکان شروع انتخاب رو 2 واحد کمتر می کنه.

2ndesigner

tooraj_azizi_1035
یک شنبه 26 دی 1389, 11:32 صبح
سلام،
از این متد TextBox استفاده کن:

public void Select(
int start,
int length
)

start از صفر شروع می شه و موقعیت اولین کاراکتری رو که باید انتخاب بشه مشخص می کنه. length هم طول انتخاب رو مشخص می کنه. با کد مقدار length رو کم و زیاد کن.

vahid271
یک شنبه 26 دی 1389, 11:34 صبح
ممنونم دوست عزیز ولی این کد رو باید کجا بذارم؟

اگه اینو تو رویداد KeyDown تکس باکس بذارم و داخل یک if جواب میده؟
به این صورت :

private textbox1_keydown(this, e)
{
if(e.KeyValue == 37)
textbox1.SelectionStart -= 2;
}
37 کد کلید فلش چپ هست!
با تشکر...

vahid271
یک شنبه 26 دی 1389, 11:37 صبح
سلام،
از این متد TextBox استفاده کن:

public void Select(
int start,
int length
)
start از صفر شروع می شه و موقعیت اولین کاراکتری رو که باید انتخاب بشه مشخص می کنه. length هم طول انتخاب رو مشخص می کنه. با کد مقدار length رو کم و زیاد کن.

ممنونم.
منم هیمن کار رو کردم و در داخل رویداد KeyDown تکس باکس نوشتم به صورت زیر ولی جواب نمیده!
به نظرتون مشکلش چیه؟

private textbox1_keydown(this, e)
{
if(e.KeyValue == 37)
textbox1.Select(4, 2);
}باید از همین رویداد استفاده کنم یا از رویداد دیگه ای؟
با تشکر...

2ndesigner
یک شنبه 26 دی 1389, 12:03 عصر
if (e.KeyValue == 37)
{
textBox1.SelectionStart = 4;
textBox1.SelectionLength = 2;
}

vahid271
یک شنبه 26 دی 1389, 20:54 عصر
دوستان من همه ي اين كدها رو تست كردمولي جواب نميدن نشانگر موس جابجا ميشه ولي انتخاب نميشن(براي يه لحظه انتخاب ميشن و دوباره ميره)
ميخوام بدونم بايد اين كد هارو توي چه رويدادي بنويسم تا جواب بده؟من توي رويداد KeyDown تكس باكس نوشتم ولي جواب نميده بايد چيكار كنم؟
دوستان خواهشا سريعتر جواب بدن...
با تشكر...

ali.rezaei7
یک شنبه 26 دی 1389, 21:58 عصر
درود. كد زيرو تو رويداد Key_Up بنويس.


if (e.KeyCode == Keys.Right)

textBox.Select(textBox.SelectionStart-1,2);
else if(e.KeyCode == Keys.Left)
textBox.Select(textBox.SelectionStart+1 , -2);