Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
セル間の移動を制限する
実行時の操作 > 移動とスクロール > セル間の移動を制限する

BeforeRowColChange イベントを使用すると、現在のセルが変更されたかどうかに関係なく、ユーザーが別のセルに移動できないようにできます。現在のセルが別のセルに移動しないようにするには、Cancel 引数を True に設定します。

BeforeColUpdate イベントを使用すると、現在のセルが変更された場合に、他のグリッドセルに移動する前にセルの値を検査できます。入力された値が無効である場合は、Cancel 引数を True に設定して、現在のセルが変更されないようにできます。また、警告音を鳴らしたり、エラーメッセージを表示することもできます。このように、BeforeColUpdate イベントでは、柔軟にユーザーの入力を検証したり、セル間の移動を制限することができます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Private Sub C1TrueDBGrid1_BeforeColUpdate(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs) Handles C1TrueDBGrid1.BeforeColUpdate
    Dim CharCode As Integer
    If e.ColIndex = 1 Then
 
        ' 列 1 のデータは大文字で始まる必要があります
        CharCode = Asc(Me.C1TrueDBGrid1.Columns(1).Text)
        If CharCode > 64 And CharCode < 91 Then Exit Sub
        
        ' ユーザーに警告メッセージを表示します
        MessageBox.Show("Last name must start with upper case")
    
        ' データの検証に失敗したため、ユーザーに別のセルへの移動を禁止します
        e.Cancel = True
    End If
End Sub

C# コードの書き方

C#
コードのコピー
private void c1TrueDBGrid1_BeforeColUpdate(object sender, C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs e) {
    int CharCode;
    if ( e.ColIndex == 1 ) 
    {
        // 列 1 のデータは大文字で始まる必要があります
        CharCode = this.c1TrueDBGrid1.Columns[1].Text[0];
        if ( CharCode > 64 && CharCode < 91 ) return;
 
        // ユーザーに警告メッセージを表示します
        MessagBox.Show("Last name must start with upper case");
 
        // データの検証に失敗したため、ユーザーに別のセルへの移動を禁止します
        e.Cancel = true;
    }
}
関連トピック