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

投稿日:

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

結論

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

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

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

現象

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

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

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

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

気づいたきっかけ

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

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

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

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

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

まとめ

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

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

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







-PC

関連記事

新型MacbookPro 2016(Late 2016)を買うかどうか非常に迷っている話。

どうしても、定期的に上がってしまうこの話題というか、欲しいから検討するんだけど、あと一歩が踏み出せない・・・ 日本の中心付近で仕様変更と闘うSE日記MacBookAir 11 Early2014 では …

fire tv stick 4Kを買った。TVにネットワークがあるにも関わらず、fire tvを選択した理由。

  先日、液晶テレビというものを購入しました。 実家で朝ごはんを食べる時だけ、ニュース番組を流してるぐらいで、ドラマとかバラエティは基本見ない。 というか、テレビのいる部屋にいない。 特にテ …

SQL文中で全角文字を使うなと言われたので、ORACLEでJOIN句の条件式をCASE文で分岐させる

JOINの条件式にCase文を入れる http://blog.goo.ne.jp/ilikehobby/e/80b471f96f6d693b6c5df75f18591c0e SQL文中で全角文字を使う …

iPhoneでKindle書籍の自動読み上げをして、効率化してみたい。

Kindleの音声読み上げ機能は読書の革命である。 Kindleの音声読み上げ機能は読書の革命である を参考にやって見た Apple 国内版SIMフリー iPhone7 ブラック Black 32GB …

VMWare導入したかったけど、断念した話。

なんとなく仕事でPGをやり続けるのに気が重くなってきたので、少し気分転換にLinuxを触ってみたいっていう思い付きからやってみることにw 一応、会社のPCへクリーンインストールでLinuxを入れるとか …


カテゴリー