PDA

View Full Version : نوشتن در سطر خاصی از textbox



yasamin64
دوشنبه 10 خرداد 1395, 15:34 عصر
سلام به همگی

من یک textbox دارم که multiline اش رو true کردم . حالا میخام در سطر مثلا 5 ام متن یا عددی رو وارد کنه. با چه دستوری انجام میشه؟
ممنون

ronix3
دوشنبه 10 خرداد 1395, 18:58 عصر
سلام
من نمیدونم تکست باکس اصلا همچین امکانی داره یا نه ولی با کد های زیر می تونی خط مورد نظرت رو بررسی کنی

string[] s;
s=textbox1.text.split('\n');
if(s.Length>=5)
{
string line5=s[5];
}

اگه تکست باکس خط ۵ داشته باشه اون خطو می ریزه تو متغییر line5

ahmad.t1100
دوشنبه 10 خرداد 1395, 19:21 عصر
سلام
لینک زیر همه چیز رو نشون داده
http://forum.soitip.org/showpost.aspx?cod=27

mrprestige
دوشنبه 10 خرداد 1395, 19:30 عصر
سلام به همگی

من یک textbox دارم که multiline اش رو true کردم . حالا میخام در سطر مثلا 5 ام متن یا عددی رو وارد کنه. با چه دستوری انجام میشه؟
ممنون
سلام و وقتتون بخیر ، شما میتونید به این صورت هم بنویسید

int n = Convert.ToInt32(textBox1.Text);
for (int i = 0; i < n; i++)
{
textBox2.Text += System.Environment.NewLine;

}
textBox2.Focus();
textBox2.SelectionStart = textBox4.Text.Length ;



در textbox1 محدوده سطر دلخواهتون رو وارد میکنید و در textbox2 متن مورد نظرتون .

پیروز و موفق باشید.

ronix3
دوشنبه 10 خرداد 1395, 20:25 عصر
سلام
لینک زیر همه چیز رو نشون داده
http://forum.soitip.org/showpost.aspx?cod=27

نمی دونستم تکست باکس همچین تابعی داره البته تا حالا نیازی بهش نداشتم ممنون

yasamin64
دوشنبه 10 خرداد 1395, 23:22 عصر
با سلام مجدد خدمت دوستان
ضمن تشکر از پاسخ همگی. فکر کنم من سوالمو درست مطرح نکردم.
من یه textbox دارم که ده تا سطر داره و در هر سطر یک عدد نوشته شده حال با زدن یک کلید قراره عددی که مثلا در سطر پنجمه تغییر کنه. ولی نمیدونم با چه دستوری انجام میشه؟

مثلا با دستور زیز مقدار سطر پنجم خوانده میشه ولی با همین دستور نمیتونم تو سطر پنج تغییر ایجاد کنم.
time= textBox1.Lines[5] ;

محمد رضا فاتحی
سه شنبه 11 خرداد 1395, 08:17 صبح
خود تکس باکس که همچین امکانی نداره....ولی می تونید با این تابع کارتون رو انجام بدید...البته باید بهینه تر بشه...
private string replace_Text(TextBox textbox, int numline,string text)
{
if (textbox.Lines.Length < 2)
{
return textbox.Text;
}
else
{
string[] line = textbox.Lines;
line[numline - 1] = text;
string temp = "";
for (int i = 0; i < line.Length; i++)
{
temp += line[i] + Environment.NewLine;
}
return temp;
}
}

محمد رضا فاتحی
سه شنبه 11 خرداد 1395, 08:24 صبح
نمی دونستم تکست باکس همچین تابعی داره البته تا حالا نیازی بهش نداشتم ممنون
البته این تابع خود تکسباکس نیست...توسط خود کاربر نوشته شده

yasamin64
سه شنبه 11 خرداد 1395, 11:15 صبح
خود تکس باکس که همچین امکانی نداره....ولی می تونید با این تابع کارتون رو انجام بدید...البته باید بهینه تر بشه...

private string replace_Text(TextBox textbox, int numline,string text)
{
if (textbox.Lines.Length < 2)
{
return textbox.Text;
}
else
{
string[] line = textbox.Lines;
line[numline - 1] = text;
string temp = "";
for (int i = 0; i < line.Length; i++)
{
temp += line[i] + Environment.NewLine;
}
return temp;
}
}




سلام

این کد هم مشکل من رو حل نکرد چون در حقیقت در این قسمت از کد هم که نوشتید
string[] line = textbox.Lines; line[numline - 1] = text;


عملا همین کد هست
textbox.lines[5]=text
که تغییری در سطر 5 ایجاد نمیکنه

حالا اگر بخام لیست باکس استفاده کنم از چه دستوری باید استفاده کنم که مثلا آیتم 5 ام رو برابر متن مورد نظر من کنه؟

محمد رضا فاتحی
سه شنبه 11 خرداد 1395, 11:46 صبح
سلام

این کد هم مشکل من رو حل نکرد چون در حقیقت در این قسمت از کد هم که نوشتید
string[] line = textbox.Lines; line[numline - 1] = text;


عملا همین کد هست
textbox.lines[5]=text
که تغییری در سطر 5 ایجاد نمیکنه

حالا اگر بخام لیست باکس استفاده کنم از چه دستوری باید استفاده کنم که مثلا آیتم 5 ام رو برابر متن مورد نظر من کنه؟

مطمئنید؟!!!
140644

مهرداد صفا
سه شنبه 11 خرداد 1395, 12:55 عصر
با سلام.
از خـــصــــوصـــــــیــــت (property) TextBox.Lines استفاده کنید:


textBox1.Lines.SetValue("a", 4);

mrprestige
سه شنبه 11 خرداد 1395, 19:36 عصر
سلام به همگی

من یک textbox دارم که multiline اش رو true کردم . حالا میخام در سطر مثلا 5 ام متن یا عددی رو وارد کنه. با چه دستوری انجام میشه؟
ممنون
سلام دوست گرامی واقعا عذر میخوام که منظورت رو خوب نگرفتم ، کدی که براتون نوشتم رو به این صورت تغییر بدید

int loc = 0;
int n = Convert.ToInt32(textBox1.Text);
for (int i = 0; i <= n; i++)
{
loc += textBox4.Lines[n].Length;


}
textBox2.SelectionStart = loc;
textBox2.Focus();

فقط قبلش بگم که شروع سطر ها در textbox از صفر هست . بازم ببخشید که منظورتون رو خوب متوجه نشده بودم

از کدنویسی لذت ببرید .

محمد رضا فاتحی
سه شنبه 11 خرداد 1395, 22:43 عصر
سلام دوست گرامی واقعا عذر میخوام که منظورت رو خوب نگرفتم ، کدی که براتون نوشتم رو به این صورت تغییر بدید

int loc = 0;
int n = Convert.ToInt32(textBox1.Text);
for (int i = 0; i <= n; i++)
{
loc += textBox4.Lines[n].Length;


}
textBox2.SelectionStart = loc;
textBox2.Focus();

فقط قبلش بگم که شروع سطر ها در textbox از صفر هست . بازم ببخشید که منظورتون رو خوب متوجه نشده بودم

از کدنویسی لذت ببرید .


الان این کد دقیقا چکار می کنه؟

yasamin64
چهارشنبه 12 خرداد 1395, 00:13 صبح
مطمئنید؟!!!
140644


سلام
یک دنیا سپاس.

yasamin64
چهارشنبه 12 خرداد 1395, 00:19 صبح
با سلام.
از خـــصــــوصـــــــیــــت (property) TextBox.Lines استفاده کنید:


textBox1.Lines.SetValue("a", 4);

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