Home > C# > WPF > WPFコントロール > テキスト編集コントロール > TextBox > TextBox内のテキストの取得と変更

TextBox内のテキストの取得と変更[C# WPF]

新規作成日 2018-11-21
最終更新日

テキストを編集可能なTextBoxのようなコントロールは、プログラム実行時にテキストをユーザーから取得するために使用されます。そのため、頻繁に、C#コードから、TextBoxの値を取得する、そして、TextBoxの値を変更することになります。

TextBox内のテキストを取得する

TextBoxの値を取得したい場合は、TextBoxタグに、Name属性を指定し、Textプロパティで取得する方法が簡単です。

メソッド 説明
Text テキスト ボックスのテキスト内容を取得または設定します。
参考

TextBoxコントロールのテキストの先頭や末尾にカーソルを移動し、テキストを挿入する

TextBoxコントロールのテキスト内で、カーソルを移動するためには、範囲選択と同じように、Selectメソッドを使用します。

TextBoxクラスの選択に関連したメソッド
メソッド 内容
Select(Int32, Int32) テキスト ボックスでテキストの範囲を選択します。
SelectAll() テキスト編集コントロールのすべての内容を選択します。(TextBoxBaseより継承)
TextBoxのテキストの位置に関連するプロパティ
プロパティ 内容
SelectedText テキスト ボックス内の現在の選択項目のコンテンツを取得または設定します。
SelectionLength テキスト ボックス内の現在の選択範囲の文字数を示す値を取得または設定します。
SelectionStart 現在の選択範囲の先頭の文字インデックスを取得または設定します。
LineCount テキスト ボックス内の行の合計数を取得します。
Text テキスト ボックスのテキスト内容を取得または設定します。

TextBox内のテキストの文字数を表すプロパティは、存在しないため、TextBox内の文字数を確認するためには、TextプロパティでTextBoxのテキストを取得した後、StringクラスのLengthプロパティを使って、文字数を取得する必要があります。

カーソル位置に、テキストを挿入するメソッドは、 SelectedTextです。

プログラムで、動作を確認してみます。

TextBox内のテキストの先頭と末尾に、それぞれテキストを挿入する

下部にあるボタンで、TextBox内のテキストの先頭、そして、末尾に、テキストを挿入するプログラムです。

<Window x:Class="TextBox01.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="150" Width="350">
    <DockPanel>
        <Grid DockPanel.Dock="Bottom">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"></ColumnDefinition>
                <ColumnDefinition Width="*"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Button Grid.Column="0" Click="Button_Click">カーソルを先頭に移動</Button>
            <Button Grid.Column="1" Click="Button_Click_1">カーソルを末尾に移動</Button>
        </Grid>
        <TextBox DockPanel.Dock="Top" Name="tbPositionCursor">
            TextBox内に、いくつかのテキストがあります。
        </TextBox>
    </DockPanel>
</Window>

続いて、分離コードに、ボタンのクリックイベントを記述します。

コードで、カーソルを移動すると、そのままでは、キーボードで入力する際に表示される点滅するカーソルは、表示されないので、カーソル位置が変化したことがわかりません。そこで、カーソル位置に「[カーソル位置]」というテキストを挿入します。

using System.Windows;

namespace TextBox01
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // カーソルをTextBoxの先頭に移動
            tbPositionCursor.Select(0, 0);
            tbPositionCursor.SelectedText = "[カーソル位置]";
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            // カーソルをTextBoxの末尾に移動
            tbPositionCursor.Select(tbPositionCursor.Text.Length, 0);
            tbPositionCursor.SelectedText = "[カーソル位置]";
        }
    }
}
参考
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」