PDA

View Full Version : سوال: رفتن به خط بعدی در textbox غیر از enter



sadaf_
پنج شنبه 09 دی 1389, 16:22 عصر
من برای textbox1 فرم key == enter نوشتم که بره textbox2 بعدی
حالا من می خوام در textbox1 برم خط بعدی مثلا با کلید down
چه کدی باید بنویسم؟
ممنون

hadi-z
پنج شنبه 09 دی 1389, 16:35 عصر
برای رفتن به خط بعدی از کد زیر استفاده کنید


Enviroment.NewLine;

مثال:


using System;

class Sample
{
public static void Main()
{
Console.WriteLine();
Console.WriteLine("NewLine: {0} first line{0} second line{0} third line",
Environment.NewLine);
}
}

group45
پنج شنبه 09 دی 1389, 16:37 عصر
خب \n رو به تکست باکس اضافه کن

ghasemweb
پنج شنبه 09 دی 1389, 16:57 عصر
شما بايد به محض اينكه كاربر كليد down را فشار داد كد يك n\ به تكست باكس اضافه كنيد

sadaf_
پنج شنبه 09 دی 1389, 17:50 عصر
شما بايد به محض اينكه كاربر كليد down را فشار داد كد يك n\ به تكست باكس اضافه كنيد
میششه یک مثال بنویید
ممنون

hadi-z
پنج شنبه 09 دی 1389, 18:08 عصر
با زدن کلید down نشانگر به سر خط میره



private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
textBox1.Text += "\n";
//or
// if (e.KeyCode == Keys.Down)
// textBox1.Text += Enviroment.NewLine;
}

sadaf_
پنج شنبه 09 دی 1389, 18:37 عصر
من خیلی این کد را امتحان کردم اما جواب نمی ده بیشتر از خط دوم پایین تر نمی ره
اگر می شه شما هم تست کنید
ممنون

hadi-z
پنج شنبه 09 دی 1389, 18:49 عصر
خب این بخاطر اینه که وقتی دوباره n\ رو به textbox اضافه میکنید n\ قبلی از بین میره و تو text کنترل textbox هیچ معنی ای نداره.

Arash_janusV3
پنج شنبه 09 دی 1389, 18:57 عصر
جالبه برای من هم همینطوره؟؟؟؟؟؟؟

sadaf_
پنج شنبه 09 دی 1389, 19:00 عصر
یعنی هیچ راهی وجود نداره؟؟
ممنون

amir-yeketaz
پنج شنبه 09 دی 1389, 23:08 عصر
من با richtextbox این کارو کردم جواب داد!!!

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
richTextBox1.AppendText("\n");
}

}
فقط یه مشکلی که هست اینه که با هر بار Down زدن صدای سیستمم در میاد!!! نمیدونم برا چی؟؟؟؟

ولی خوشم اومده مشکل جالبیه!!!

ACorvinus
جمعه 10 دی 1389, 01:31 صبح
سلام.
از این روش هم میتونین استفاده کنین. امیدوارم مشکلتون رو برطرف کنه.


if (e.KeyCode == Keys.Down && this.textBox1.Multiline)
System.Windows.Forms.SendKeys.Send("{Enter}");

hadi-z
جمعه 10 دی 1389, 05:49 صبح
سلام.
از این روش هم میتونین استفاده کنین. امیدوارم مشکلتون رو برطرف کنه.


if (e.KeyCode == Keys.Down && this.textBox1.Multiline)
System.Windows.Forms.SendKeys.Send("{Enter}");

این کد رو تست کردم
واقعا عالی بود
این موضوع با این که خیلی پیش پا افتاده بود و خیلی فکر منو مشغول کرده بود
فقط یه سوال:
این متد send ، آیا هر کاراکتری رو میتونه به هر Object یی بفرسته؟

DrTJ2066
جمعه 10 دی 1389, 07:19 صبح
من اینو تست کردم جواب میده...

if (e.KeyCode == Keys.Down)
textBox1.Text += "\r\n";

ACorvinus
جمعه 10 دی 1389, 15:36 عصر
این کد رو تست کردم
واقعا عالی بود
این موضوع با این که خیلی پیش پا افتاده بود و خیلی فکر منو مشغول کرده بود
فقط یه سوال:
این متد send ، آیا هر کاراکتری رو میتونه به هر Object یی بفرسته؟

سلام. خب بسته به شرایطی داره که میخواین ازش استفاده کنین. میخواین چیکار کنین؟!
ببینین، من خودم یه زمانی احتیاج داشتم وقتی یکی از فرم هام لود میشه یه بار Enter فشار داده بشه. خب این کار باید به صورت اتوماتیک انجام می شد. متد SendKey.Send() کارمو را مینداخت.

حالا شما میخواین چیکار کنین؟

hadi-z
جمعه 10 دی 1389, 17:13 عصر
میخوام برای ساخت کیبرد مجازی ازش استفاده کنم

amir-yeketaz
جمعه 10 دی 1389, 18:02 عصر
میخوام برای ساخت کیبرد مجازی ازش استفاده کنم
اینجا توضیح خوبی هست:
http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send.aspx

ACorvinus
جمعه 10 دی 1389, 19:58 عصر
میخوام برای ساخت کیبرد مجازی ازش استفاده کنم

خب من چیزی به ذهنم نمیرسه. منظورم اینه که نمیدونم چجوری میخوای کیبورد مجازی بسازی؟!!!!!
اگه کمکی خواستی من هستم تا برات کمک کنم. کافیه بهم Mail بزنی.

Arash_janusV3
شنبه 11 دی 1389, 14:49 عصر
قبل از هر چیز لازم می دانم که تشکر بکنم از دوستانی که در بحث شرکت کردند و من بهترین راه حل رو برای این مشکل پیدا کردم و بد نیست شما هم تست کنید و نظرتان رو بدهید هر چند وقت یک پروژه رو از ما گرفت ولی حداقل این رو به من ثابت کرد که باید در کنترلها نفوذ و تسلط بیشتری داشته باشم


private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
textBox1.Text += "\r\n";
textBox1.focus();
}





و در تنظیمات textbox و در خاصیت scroll برابر none می باشد آن را به حالتی که به فرمت می یاد تغییر بده
موفق باشید