2017-06-27 19 views
0

私は、私が持っているグリッドの検証の点で、私のアプリケーションのエンドユーザと提起されたいくつかの問題があります。UltraGrid検証問題

2つの列がDate列であるため、セルにはデータの入力を許可するためにDatePickersが含まれています。しかし、何らかの理由で、これらのセルで現在の日付を選択することはできません。 前回/将来の日付を最初に選択した場合は、現在の日付に変更できますが、これは最も効率的なものではありません。

最初に別の日付を選択せず​​にグリッドが現在の日付を選択できない理由はありますか?

第2に、小数点の列が正しく検証されていません。どの缶(:私は、これらの列のいずれかをクリックすると、セルは{9.2をダブル}文字列が表示されます、しかし、次のコード

e.Layout.Bands(0).Columns("currentRate").MaskInput = "{double:9.2}" 
e.Layout.Bands(0).Columns("newRate").MaskInput = "{double:9.2}" 
を使用して、 InitializeLayout方法で特定の列の MaskInputプロパティを設定しています削除しないと)、値を入力せずにセルをクリックすると、空のセルだけが表示されます。セルは、2 DPではなく、1桁と小数点以下の桁のみを許可します。

私が使用しているコードで何が問題になっていますか?

最後の3つの問題はこれまでにない最も重要なことではありませんが、セルをクリックするとセルのテキストは自動的に強調表示されないため、ユーザーは各文字を削除してセルを消去する必要があります。

セルをクリックすると、セル内のテキストを自動的に選択できるようにするにはどうすればよいですか?

答えて

1

最後の問題を簡単に修正できます。これを行うには、ユーザーがクリックしたセルの編集を取得し、このような方法のSelectAllエディタを超える呼び出すには:あなたの最初の二つの問題について

private void UltraGrid_AfterEnterEditMode(object sender, EventArgs e) 
{ 
    var grid = sender as UltraGrid; 
    if(grid == null) 
     return; 

    var activeCell = grid.ActiveCell; 
    if(activeCell == null) 
     return; 

    var editor = activeCell.EditorResolved; 
    if(editor == null) 
     return; 

    editor.SelectAll(); 
} 

、私見これは、グリッドのデフォルトの動作ではありません。グリッドは、カレンダードロップダウンから任意の日を選択するように指示しません。指定しなかった場合は、指定されたマスクに従って番号が表示されます。だから、コードをチェックして、グリッドがこのように動作するようにするイベントを処理していないかどうかを確認することをお勧めします。私は、テキスト選択の問題を解決する方法は、次の操作を行うことでした

+0

私は実際にグリッドのテキストを選択するために別の方法を使用しましたが、あなたの考えに感謝します(しかし、私はVBを使用していますが、C#ではありません)。他の問題を引き起こしている可能性のあるアイデアはありますか?どのような種類のコードを上書きすることができますか? – Harambe

0

Private Sub ugProducts_AfterEnterEditMode(sender As Object, e As EventArgs) Handles ugProducts.AfterEnterEditMode 

    Dim activeCell As UltraGridCell = ugProducts.ActiveCell 
    Dim editor = activeCell.EditorResolved 
    If editor IsNot Nothing Then 
     If TypeOf editor Is CheckEditor AndAlso TypeOf editor Is EditorWithCombo Then 
     Else 
      editor.SelectionStart = 0 
      editor.SelectionLength = activeCell.Text.Length 
     End If 
    End If 

End Sub 

何らかの理由で、それはIsNotの使用を許可しませんので、私はとIsのために解決しなければなりませんでしたElse声明。しかし、これはトリックを行うだろう、またはC#ユーザの場合は、@ wnvkoの提案を使用します。