-2

私はそれをリファクタリングするためにコードの一部を理解しようとしています。入力値が有効かどうかを確認するためのいくつかの検証があり、各検証には、それが何をするのか理解できないコード行があります。コードは次のとおりです。

if (IsNotDouble(weight))
{
     MessageBox.Show("Weight must be a numeric value!");
     txtWeight.Select();
     return;
}

txtWeightテキストボックスです。

誰かがここで何をしているのか教えてもらえますか?txtWeight.Select()エラーがスローされるたびにこのコードをここに投稿する必要がある理由がわかりません。

4

4 に答える 4

3

重みを入力する必要があるテキストボックスにカーソルを設定します。

于 2013-02-20T08:37:43.867 に答える
2

MSDNのTextBox.Select()メソッド。

コントロールをアクティブにします。ControlStylesでコントロールのSelectableスタイルビットがtrueに設定されていて、それが別のコントロールに含まれていて、そのすべての親コントロールが表示されて有効になっている場合、Selectメソッドはコントロールをアクティブにします。

あなたの場合、検証チェックが失敗したときはいつでも、特定のテキストボックスが選択されてアクティブになり、視覚的なフォーカスが設定されているように見えます。

于 2013-02-20T08:41:08.867 に答える
2

MSDNによると:

ControlStylesでコントロールのSelectableスタイルビットがtrueに設定されている場合、Selectメソッドはコントロールをアクティブにします。

つまり、シナリオでSelectフォーカスをに設定する場合は、フォーカスをに設定して、ユーザーがフォーム全体を検索しなくてもすぐにテキストを書き込めるようにします。ControlIsNotDouble(weight)truetxtWeighttxtWeight

于 2013-02-20T08:42:22.490 に答える
1

Selectメソッドは、テキストボックスコントロールをアクティブにします。または、これをテキストボックスにフォーカスをもたらすと考えることができます。検証が行われているときは、おそらくそのテキストボックスにすでに焦点が当てられているため、この場合は必要ない場合があります。

于 2013-02-20T08:42:07.943 に答える