複数行テキストボックスで、最初の行、最後の行にスクロールする
複数行テキストボックスで、最初の行や最後の行にスクロールするコードを紹介します。
実装例
UI
下図のUIを作成します。テキストボックスを1つButtonを2つ配置します。
テキストボックスのScrollBarsプロパティを"Both"に変更します。また、WordWrapプロパティを"False"にします。
コード
以下のコードを記述します。button1,button2のClickイベントハンドラとフォームのLoadイベントを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace ScrollFirstAndLast
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void FormMain_Load(object sender, EventArgs e)
{
FileStream fs = new FileStream("doc.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs);
string doc = sr.ReadToEnd();
textBox1.Text += doc;
sr.Close();
fs.Close();
textBox1.SelectionLength = 0;
textBox1.SelectionStart = 0;
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.SelectionStart = 0;
textBox1.ScrollToCaret();
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
}
}
}
解説
Loadイベント
doc.txtファイルを読み込み、ファイル内容をテキストボックスに表示します。詳細は
こちらの記事を参照してください。
ButtonのClickイベント
テキストボックスのSelectionStartプロパティに0を設定しキャレットをドキュメントの先頭に移動します。移動後ScrollTocaretメソッドを呼び出しキャレットが見える位置までスクロールすることで、ドキュメントの先頭へスクロールできます。
private void button1_Click(object sender, EventArgs e)
{
textBox1.SelectionStart = 0;
textBox1.ScrollToCaret();
}
テキストボックスのSelectionStartプロパティにドキュメントの長さの値を設定し、キャレットを末尾に移動します。キャレットの移動後ScrollTocaretメソッドを呼び出しキャレットが見える位置までスクロールさせ、ドキュメントの末尾にスクロールできます。
private void button2_Click(object sender, EventArgs e)
{
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
}
doc.txt
スクロールバーが表示される程度の長さのあるドキュメントを用意します。ソリューションエクスプローラでファイルのプロパティの[出力ディレクトリ]プロパティを[常に出力する]に設定します。
iPentec DocumentではiPentecスタッフによる、レビュー Tips メモ その他の記事を集中管理しています。
■プログラミングTips
- C# プログラミングTips
- C# プログラミングTips(旧目次)
- CSS Tips
- PHP プログラミング Tips
- Flash Action Script 3 Tips
- Java プログラミングTips
■サーバ管理 Windows Tips
- Windows Server Tips
- SQL Server 2008 Tips
- Windows Tips
- Redmineサーバーの構築と運用
- Subversionサーバーの構築と運用
■プログラミング基本
- C# 制御フロー
- Java 制御フロー
- PHP 制御フロー
- Delphi 制御フロー
- JavaScript 制御フロー
■Delphi
- Delphiレビュー記事
- DelphiプログラミングTips
■3D CG(コンピューターグラフィックス)
- iPentec 3DCG
■その他
- 健康・ヘルスケア関連
- 家電・ライフスタイル関連
- デジタルカメラ関連
- ページタイトル命名規則
- 注目製品・サービスメモ
■ランキング
- iPentec 2011年 レビュー・開発Tips記事ページ ランキング
- iPentec 2010年 レビュー・開発Tips記事ページ ランキング
- iPentec 2009年 レビュー・開発Tips記事ページ ランキング
- iPentec 2008年 レビュー・開発Tips記事ページ ランキング
■ツール類
- UTC JST変換ツール
- $GPGGAプロットツール
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
button2をクリックするとテキストボックスの末尾へスクロールします。
末尾にスクロールした状態でbutton1をクリックすると先頭へスクロールできます。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用