GcNumber型セルで整数1桁から編集を開始する方法

文書番号 : 84074     文書種別 : 使用方法     登録日 : 2019/06/18     最終更新日 : 2019/06/18
文書を印刷する
対象製品
MultiRow for Windows Forms 10.0J
詳細
編集時のキャレットの位置は、編集用コントロールのSelectionStartプロパティに任意の値を設定することで変更可能です。
下記のサンプルコードは整数1桁から編集開始する例です。

[Visual Basic]
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' MultiRowの設定
    Dim gcNumber As New GcNumberCell()
    GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {gcNumber})
    GcMultiRow1.RowCount = 5

    ' テストデータの設定
    GcMultiRow1.SetValue(0, 0, 12345)
    GcMultiRow1.SetValue(1, 0, 1.2345)
    GcMultiRow1.SetValue(2, 0, 12.345)
    GcMultiRow1.SetValue(3, 0, 123.45)
    GcMultiRow1.SetValue(4, 0, 1234.5)
End Sub

Private Sub GcMultiRow1_EditingControlShowing(sender As Object, e As EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing
    If TypeOf e.Control Is GcNumberEditingControl Then
        Dim editor As GcNumberEditingControl = GcMultiRow1.EditingControl
        ' キャレットを小数点の直前に配置
        If editor.Text.IndexOf(".") < 0 Then Exit Sub
        editor.SelectionStart = editor.Text.IndexOf(".")
    End If
End Sub

[C#]
private void Form1_Load(object sender, EventArgs e)
{
    // MultiRowの設定
    GcNumberCell gcNumber = new GcNumberCell();
    gcMultiRow1.Template = GrapeCity.Win.MultiRow.Template.CreateGridTemplate(new Cell[] { gcNumber });
    gcMultiRow1.RowCount = 5;

    // テストデータの設定
    gcMultiRow1.SetValue(0, 0, 12345);
    gcMultiRow1.SetValue(1, 0, 1.2345);
    gcMultiRow1.SetValue(2, 0, 12.345);
    gcMultiRow1.SetValue(3, 0, 123.45);
    gcMultiRow1.SetValue(4, 0, 1234.5);
}

private void GcMultiRow1_EditingControlShowing1(object sender, EditingControlShowingEventArgs e)
{
    if (e.Control is GcNumberEditingControl)
    {
        GcNumberEditingControl editor = (GcNumberEditingControl)gcMultiRow1.EditingControl;
        // キャレットを小数点の直前に配置
        if (editor.Text.IndexOf(".") < 0) { return; }
        editor.SelectionStart = editor.Text.IndexOf(".");
    }
}