新規作成日 2018-11-21
最終更新日
テキストを編集可能なTextBoxのようなコントロールは、プログラム実行時にテキストをユーザーから取得するために使用されます。そのため、頻繁に、C#コードから、TextBoxの値を取得する、そして、TextBoxの値を変更することになります。
TextBox内のテキストを取得する
TextBoxの値を取得したい場合は、TextBoxタグに、Name属性を指定し、Textプロパティで取得する方法が簡単です。
メソッド | 説明 |
---|---|
Text | テキスト ボックスのテキスト内容を取得または設定します。 |
参考
TextBoxコントロールのテキストの先頭や末尾にカーソルを移動し、テキストを挿入する
TextBoxコントロールのテキスト内で、カーソルを移動するためには、範囲選択と同じように、Selectメソッドを使用します。
メソッド | 内容 |
---|---|
Select(Int32, Int32) | テキスト ボックスでテキストの範囲を選択します。 |
SelectAll() | テキスト編集コントロールのすべての内容を選択します。(TextBoxBaseより継承) |
プロパティ | 内容 |
---|---|
SelectedText | テキスト ボックス内の現在の選択項目のコンテンツを取得または設定します。 |
SelectionLength | テキスト ボックス内の現在の選択範囲の文字数を示す値を取得または設定します。 |
SelectionStart | 現在の選択範囲の先頭の文字インデックスを取得または設定します。 |
LineCount | テキスト ボックス内の行の合計数を取得します。 |
Text | テキスト ボックスのテキスト内容を取得または設定します。 |
TextBox内のテキストの文字数を表すプロパティは、存在しないため、TextBox内の文字数を確認するためには、TextプロパティでTextBoxのテキストを取得した後、StringクラスのLengthプロパティを使って、文字数を取得する必要があります。
カーソル位置に、テキストを挿入するメソッドは、 SelectedTextです。
プログラムで、動作を確認してみます。
下部にあるボタンで、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 = "[カーソル位置]";
}
}
}
参考
- 方法:TextBoxコントロールのテキストの先頭や末尾にカーソルを移動するHow to: Position the Cursor at the Beginning or End of Text in a TextBox Control
- TextBox.Select(Int32, Int32) Method
- TextBox Class
- String Class