C# TextBox滾動(dòng)實(shí)現(xiàn)解析
C# TextBox滾動(dòng)實(shí)現(xiàn)具體的內(nèi)容是什么?使用C# TextBox時(shí)需要注意什么呢?作為我們編程的實(shí)現(xiàn)C# TextBox滾動(dòng)的操作細(xì)節(jié)是什么呢?那么下面我們來(lái)看看具體的C# TextBox滾動(dòng)的操作實(shí)現(xiàn)以及C# TextBox使用需要注意的問(wèn)題。
C# TextBox滾動(dòng)實(shí)例代碼:
- using System;
 - using System.Collections.Generic;
 - using System.ComponentModel;
 - using System.Data;
 - using System.Drawing;
 - using System.Text;
 - using System.Windows.Forms;
 - using System.Runtime.InteropServices;
 - namespace WindowsApplication27
 - ...{
 - /**//// <summary>
 - /// 演示如何在TextBox中讓文字循環(huán)滾動(dòng):
 - ///
 - /// C#中WinForm的TextBox循環(huán)自動(dòng)滾動(dòng)
 - /// </summary>
 - public partial class Form1 : Form
 - ...{
 - public Form1()
 - ...{
 - InitializeComponent();
 - this.textBox1.Clear();
 - for (int i = 0; i <= 20;i++ )
 - ...{
 - this.textBox1.Text += string.Format("{0}:jinjazz__{1} ", i,i);
 - }
 - this.timer1.Interval = 200;
 - this.timer1.Start();
 - }
 - //發(fā)送消息
 - [DllImport("user32.dll", EntryPoint = "SendMessage")]
 - public static extern int SendMessage(
 - IntPtr hWnd, int wMsg, int wParam, int lParam);
 - //獲取滾動(dòng)條位置
 - [DllImport("user32")]
 - public static extern int GetScrollPos(IntPtr hwnd, int nBar);
 - //設(shè)置滾動(dòng)條位置
 - [DllImport("user32.dll")]
 - static extern int SetScrollPos(IntPtr hWnd, int nBar,
 - int nPos, bool bRedraw);
 - public const int EM_LINESCROLL = 0xb6;
 - private void timer1_Tick(object sender, EventArgs e)
 - ...{
 - int i= GetScrollPos(this.textBox1.Handle,1);
 - //向下滾動(dòng)一行
 - SendMessage(this.textBox1.Handle,
 - EM_LINESCROLL, 0, 1);//0,1代表垂直滾動(dòng)條向下滾動(dòng)
 - //判斷是否有位置變化,如果沒(méi)有則說(shuō)明到了底部,返回開(kāi)始處
 - if (i == GetScrollPos(this.textBox1.Handle, 1))
 - ...{
 - //回到頂部,這里用SetScrollPos似乎有問(wèn)題,滾動(dòng)條和文字不是同步更新
 - this.textBox1.SelectionStart = 0;
 - this.textBox1.SelectionLength = 1;
 - this.textBox1.ScrollToCaret();
 - this.textBox1.SelectionLength = 0;
 - }
 - Console.WriteLine(i);
 - }
 - private void textBox1_MouseEnter(
 - object sender, EventArgs e)
 - ...{
 - this.timer1.Stop();
 - }
 - private void textBox1_MouseLeave(
 - object sender, EventArgs e)
 - ...{
 - this.timer1.Start();
 - }
 - }
 - }
 
C# TextBox使用是要注意:
1、如何在多行TextBox中寫入文本時(shí)實(shí)現(xiàn)換行:由于Windows系統(tǒng)中,回車符需兩上字符。因此方法是使用\r\n標(biāo)記,如
- Label="Calculation "+":.......SUM\r\n";
 - textBox.AppendText(Label);
 
另外還有一個(gè)辦法是用Environment.Newline的方法,可以兼容Windows和Linux系統(tǒng)。
2、如何在多行TextBox中用滾動(dòng)條,使添加文本后自動(dòng)滾動(dòng)顯示到最后一行:方法是使用ScrollToCaret方法,自動(dòng)滾動(dòng)到插入符的位置,如:
- textBox.AppendText(Label);
 - textBox.ScrollToCaret();
 
C# TextBox滾動(dòng)的實(shí)現(xiàn)以及C# TextBox使用時(shí)需要注意的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# TextBox滾動(dòng)、換行等等有所幫助。
【編輯推薦】















 
 
 
 
 
 
 