[VB.net]「入力文字列の形式が正しくありません」エラーの原因と解決法。

投稿日:

先日、半日以上悩んでいた現象が解決しました。

結論

結論から言うと、CellValueChangedイベントでの処理が原因でした。

データグリッドへの値の投入時、CellValueChangedイベント内で、明細の値を使用した比較計算をさせていたんです。

それが、画面Load時なので、値が存在しない状態で計算しようとしてエラー吐いてました・・・

現象

データグリッドへの値をセットする際に「入力文字列の形式が正しくありません」のエラーが発生し、値が中途半端に投入される。

強制的に行列数分だけ回し、try-catchでエラーを無視することで無理やり機能を実現したが、画面の表示に数秒掛かるように・・・

これではイカンと思いつつも、原因が不明でどうしようもなかった。

実際、catchできたエラーからは、別のイベントが絡んでるなんて思いもしなかったし・・・

気づいたきっかけ

速度の遅さを指摘された再に、「CellValueChangedイベントを毎回使用してて効率悪くね?」というもの。

確かに、効率悪いなとは思っていたけど、エラー該当箇所では、TextプロパティにString値を入れてるだけで特別なことはして無いと思ってた。

そしたら、そのたびに、CellValueChangedイベントが動いていたことが判明・・・

そっちにはtry-catch仕掛けてなかったので、全然気づかなかった。

というか、CellValueChangedイベントの処理を入れる前は普通に処理出来ていたことに気づくべきだったのに・・・

まとめ

どうしようもない時は人を頼る方がいいね。

寝たら解決方法を思いつくかも・・・とか考えて、早々に諦めて帰ったりしたけど、全然そんなことは無くて、他人にテストを頼んだら、あっさりと解決方法にたどり着いたという。

個人的には一見エラーが無いように見えるイベント系は今後、注視ポイントにしていきたい。







-PC

関連記事

Skype for Business 2016がPCの起動時に自動で立ち上がるのを停止する

ここ半月ほど、Skype for BusinessがPCの起動時に自動起動してくるのがウザくなってきたので、自動起動させない方法を。 基本的に、PCは休止だったりログオフだけで電源を落とすことがないの …

SyntaxHighlighter EvolvedっていうWordPressのプラグインを使ったら、楽にソースコードを表示できた。

SyntaxHighlighter Evolvedっていうプラグインを使って、コードの表示を楽にしてみた。 C#で正規表現が使えたらな〜って時は以外と多いので、ちょっと正規表現を頑張って使ってみた。 …

SRWare Ironの起動時に「プロフィールを開くことができませんでした。・・・」と表示されて起動できない問題。

窓際社員として1日を平和に過ごすには、ネットの力は必要なんです。 退屈しのぎ(調べ物)する事もあるし、それこそ仕事の内容を検索して時間を潰し(一生懸命仕事してる)ので。   ところが、先日か …

EXCELで名前の定義を消す方法。

EXCELで名前の定義を消す方法を調べました。 普段使っている分には多分意識することは無いんだけど、先輩社員から譲りうけたファイルとか、共通で何年も使っているファイルやシートをコピーして使わなきゃいけ …

Excelで任意の位置に画像を貼り付ける方法

Excelで資料を作る際、ほぼ必須だと思う作業の1つが、画像の貼付。 基本的には、Excelのセルを選んだところに画像は貼り付く・・・はずなんです。 が、場合によっては、セルの位置に張り付かず、A1セ …


カテゴリー