作成日: 2023/01/06 最終更新日: 2023/01/06
文書種別
使用方法
詳細
リボン上のテキストボックス(RibbonTextBox)のKeyDownイベントを利用すると、テキストボックスに入力した文字列が無効な場合に、フォーカスの移動を禁止することができます。
例えば、イベントで検出されたキーがEnterキーであるとき、テキストボックスへの入力文字列のチェックを行い、有効でない場合(例:"あああ" 以外)に「e.Handled = True」を設定します。これにより、入力確定のためにEnterキーを押下した時でもフォーカスが他に移動せず、テキストボックスに留まったままになります。
以下に簡単な設定コードを記載します。
※値チェック実行後にメッセージボックスを表示したのち、再度テキストボックスにフォーカスを戻すことも可能です(下記コードの「MessageBox.Show」部分をアンコメントしてください)。この場合、テキストボックスの文字列は全選択状態になります。

◎サンプルコード(VB)
例えば、イベントで検出されたキーがEnterキーであるとき、テキストボックスへの入力文字列のチェックを行い、有効でない場合(例:"あああ" 以外)に「e.Handled = True」を設定します。これにより、入力確定のためにEnterキーを押下した時でもフォーカスが他に移動せず、テキストボックスに留まったままになります。
以下に簡単な設定コードを記載します。
※値チェック実行後にメッセージボックスを表示したのち、再度テキストボックスにフォーカスを戻すことも可能です(下記コードの「MessageBox.Show」部分をアンコメントしてください)。この場合、テキストボックスの文字列は全選択状態になります。
◎サンプルコード(VB)
Private Sub RibbonTextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles RibbonTextBox1.KeyDown
' Enterキーが押された場合
If e.KeyCode = Keys.Enter Then
Dim tb = TryCast(sender, C1.Win.Ribbon.RibbonTextBox)
' 値チェックを実行
If Not tb.Text.Equals("あああ") Then
' 値が有効でない場合、メッセージボックスを表示
'MessageBox.Show("エラー")
e.Handled = True
End If
End If
End Sub
◎サンプルコード(C#)
private void RibbonTextBox1_KeyDown(object sender, KeyEventArgs e)
{
//「Enter」キーが押された場合
if (e.KeyCode == Keys.Enter)
{
var tb = sender as C1.Win.Ribbon.RibbonTextBox;
//値チェックを実行
if (!tb.Text.Equals("あああ"))
{
//値が有効でない場合、メッセージボックスを表示
//MessageBox.Show("エラー");
e.Handled = true;
}
}
}