PDA

View Full Version : مبتدی: اسکرول اتوماتیک textbox



alimooghashang
چهارشنبه 04 فروردین 1389, 16:47 عصر
با سلام
چطوری بگم وقتی که textbox داره بهش خط اضافه میشه اتوماتیک scrol کنه و همیشه خط آخر رو نشون بده
با تشکر

ennovation
چهارشنبه 04 فروردین 1389, 17:23 عصر
سلام .

richTextBox2.SelectionStart = richTextBox2.Text.Length;
richTextBox2.ScrollToCaret ();

برای تکست باکس هم جواب میده

alimooghashang
چهارشنبه 04 فروردین 1389, 17:50 عصر
سلام .

richTextBox2.SelectionStart = richTextBox2.Text.Length;
richTextBox2.ScrollToCaret ();

برای تکست باکس هم جواب میده
اینطور که شما گفتین میشه ولی پرش میکنه میاد دوباره اول textbox

من اینطوری خط جدید را اضافه میکنم
شاید بخاطر اینه



Textbox1.Text += textMessage + Environment.NewLine;

mn_zandy63
چهارشنبه 04 فروردین 1389, 18:21 عصر
سلام دوست من
کد دوستمون ennovation کاملا درسته.
این کد رو باید هر بار بعد از اینکه مقدار text داخل textbox رو تغییر دادی اجرا کنی.

textBox1.Text += textMessage + Environment.NewLine;
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();

موفق باشی.

alimooghashang
چهارشنبه 04 فروردین 1389, 18:35 عصر
این کار رو هم کردم اما نشد
بازم پرش داره!!!
لازم به ذکر هست که من با یک ترد این کار رو انجام میدم!!!

mn_zandy63
پنج شنبه 05 فروردین 1389, 00:16 صبح
این کار رو هم کردم اما نشد
بازم پرش داره!!!
لازم به ذکر هست که من با یک ترد این کار رو انجام میدم!!!

متوجه نمیشم، لطفا کدت رو بذار اینجا تا ببینیم شاید بهتر بتونیم کمکت کنیم.

موفق باشی

alimooghashang
پنج شنبه 05 فروردین 1389, 00:29 صبح
public void threadfunction()
{
int i=0;
while (true)
{
textBox1.Text += i.toString() + Environment.NewLine;
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
i++;
}

}
و در یک button این نخ فعال میشه


thr = new Thread (new ThreadStart(threadfunction));
thr.start();

mn_zandy63
پنج شنبه 05 فروردین 1389, 16:08 عصر
سلام دوست من،

من کد شما رو تست کردم، درسته.
البته کدی که نوشتی unsafe هست، یه تغییر کوچیک دادم، شما هم تست کن.

private Thread _thr;

private void Button1_Click(object sender, EventArgs e)
{
_thr = new Thread(Threadfunction);
_thr.Start();
}

public void Threadfunction()
{
if (textBox1.InvokeRequired)
{
Invoke(new MethodInvoker(Threadfunction));
}
else
{
var i = 0;
while (true)
{
textBox1.Text += i + Environment.NewLine;
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
i++;
if (i == 100)
{
break;
}
}
}
}

}


اگه بازم نتونستی کار کنی، پروژه ات رو بذار.

موفق باشی.