くだスレC#
■ このスレッドは過去ログ倉庫に格納されています
008365
NGNG> これだと Enter キーでなく Tab で次のコントロールに移動したら Value は
> 前の値のままです。
仰るとおりですね。
> Value は必要なときに Text から変換したり代入したりすれば済むのですから
> Value プロパティの Get Set アクセサ内で型変換を行うべきです。
成る程、明日やってみます。
これのアドバイスが無ければ間違いなくEnterとTabの判定を行ってました(^^ゞ
現在はこの件とは別にこのコントロールに機能を追加しようと思いまして
1.数字(0〜9、及び小数点とマイナス記号)のみ入力を受け付ける
2.マイナス記号は最初の入力のみ可能にする(123-456と入れるのは×)
3.少数点"."は一回のみ入力可能にする(123..45と入れるのは×)
というのをやっています。
1と2は何とか出来たのですが3をやろうとして
IndexOfメソッドとLastIndexOfメソッドを比較して異なれば"."を一つRemoveすれば
良いのかと思っているのですが上手くいきません。
KeyPressイベント内で
case (char)46: // "."
if (textBox1.Text.IndexOf('.') == textBox1.Text.LastIndexOf('.'))
{
break;
}
else
{
textBox1.Text = textBox1.Text.Remove(textBox1.Text.LastIndexOf('.'),1);
e.Handled = true;
break;
}
(※これはコントロールではなくテスト用にフォームにTextBoxを貼ってテストしてます。)
とやっているのですが"."が3回入力された段階で削除され、
カーソルが先頭に移動してしまいます...
■ このスレッドは過去ログ倉庫に格納されています