カテゴリー別

お絵描き、デザイン

写真、動画関連ソフト

アメーバピグ専用ソフト

ホームページ関連

画像処理

スキャナー用

SEO 関連

お楽しみ

その他

過去ログ

2017年08月31日(木)

c# コントロールからテキストを取得するコード

今日も、コツコツプログラミングしたり、
ホームページの新しいページを書いたりしとりました。

まぁ、特に書くこともないので、
サンプルコードでもあげときます。

エディットボックスとかから
テキストを取得するときのコードです。

非常に短い関数ですが、よく使う汎用的な処理は
関数にしといた方がいろいろと便利です。

public static string GetText(
  Control ctrl, string emptyErr, bool trim = true
)
{
  string value = ctrl.Text;
  if (trim)
    value = value.Trim();
  if (!string.IsNullOrEmpty(emptyErr) && string.IsNullOrEmpty(value))
    throw new ControlException(ctrl, emptyErr);
  return value;
}

trim が真の場合、は文字列の前後の空白を除去します。
だいたいの場合は除去するので、ディフォルトは true でよいでしょう。

emptyErr には、文字列が空だったときの
例外を説明するテキストを渡します。

ControlException は自作のクラスで、
名前からわかるとおり、System.Exception
から派生させたクラスで、例外が発生したコントロールを
わかるようにしただけのやつです。

ControlException をキャッチすると、
例外の発生したコントロールがわかるので、
そこにフォーカスをあわせたりできて便利です。

emptyErr に null とか空文字列を渡すと、
コントロールのテキストが空でも
例外が発生しなくなります。

ま、どっちかというと使わない機能なので、
ディフォルトに設定しない方が親切でしょう。

これだけ短い関数だと、処理を共通化しなくてもよさそうですが、
共通化しておくことによって、トリムし忘れが防げたり
トリムの仕様を変更したくなったときに便利なので、
やっといた方がベターでしょうね。

とはいえ、こういう類のものはキッチリやろうとすると
時間がかかって、いつまでも完成しなくなるので注意です。

・・・

特に私にその傾向があるので困るわー。

ブログ著者のホームページはこちら です。


コメント
コメントする