こんにちはフェローC#とWindows Phone開発者、
Windows Phoneアプリケーションの場合、ユーザーに年齢の入力を要求するテキストフィールドがあります。デバッグモード中に、番号.8を入力しました。[続行]をクリックすると、アプリケーションが予期せず閉じられました。小数点以下1桁を超える数字は使用できないことをユーザーに通知するメッセージボックスを投稿できるように、どのコードを追加する必要がありますか。助けてください
こんにちはフェローC#とWindows Phone開発者、
Windows Phoneアプリケーションの場合、ユーザーに年齢の入力を要求するテキストフィールドがあります。デバッグモード中に、番号.8を入力しました。[続行]をクリックすると、アプリケーションが予期せず閉じられました。小数点以下1桁を超える数字は使用できないことをユーザーに通知するメッセージボックスを投稿できるように、どのコードを追加する必要がありますか。助けてください
入力が文字列であると仮定して、次のことを試してください。
if (input.IndexOf('.') == -1 || input.LastIndexOf('.') == input.IndexOf('.'))
{
//good
}
else
MessageBox.Show("More than one decimal point");
ただし、より良い方法は、数値のフォーマットをチェックするTryParseを使用することです。
float age;
if (float.TryParse(input, out age))
{
//good
}
else
MessageBox.Show("Invalid age.");
1つの方法は、ユーザーが入力を入力するときに、小数点以下1桁の入力数を小数点以下1桁に制限することです。
最後にチェックするのではなく、リアルタイムであるため、これははるかに優れています。
private void tbx_KeyDown(object sender, KeyEventArgs e)
{
//mark the sneder as a textbox control so we can access its properties
TextBox textBoxControl = (TextBox)sender;
//if there is already a decimals, do not allow another
if (textBoxControl.Text.Contains(".") && e.PlatformKeyCode == 190)
{
e.Handled = true;
}
}