- - PR -
InvalidCastExceptionエラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-04-05 06:13
VB.Net2003 スマートデバイスアプリで開発しています。
処理が起動する前にファイルを読込ませて、ある構造体変数にセットします。 その構造体変数をFormが開いた時にテキストボックスにセットしているのですが、 どういう訳かInvalidCastExceptionエラーが発生してEXEが終了します。 以前も同じ事があったのですが、特に何をしてうまくいったのか解らないですが 正常に動作しました。という状況です。 InvalidCastExceptionエラーが発生する要因を教えて下さい。 宜しくお願いします。 構造体列挙(共通モジュール側) Public Structure ptypLgSuplyTstRpt Dim strAddr1 As String Dim strAddr2 As String Dim strAddr3 As String End Structure Public pKyoIn() As ptypLgSuplyTstRpt Public pKyoOt() As ptypLgSuplyTstRpt @Form_Load時に Call DataCHk() call InWork_Eki() ADataCHk関数(共通モジュール側) public function DataCHk() Dim Rfile As System.IO.StreamReader 'ファイルの読み込み Dim Shift_JIS As System.Text.Encoding 'Shift_JIS Dim StrLine1 As String = "" redim pKyoIn(0) Shift_JIS = System.Text.Encoding.GetEncoding("Shift_JIS") Rfile = New StreamReader("C:\Test1.txt", Shift_JIS) StrLine1 = Rfile.ReadLine() If StrLine1 = "" Then Exit Do pKyoIn(0).strAddr1 =Trim(Mid(StrLine1, 1, 7)) pKyoIn(0).strAddr2 =Trim(Mid(StrLine1, 7, 7)) pKyoIn(0).strAddr3 =Trim(Mid(StrLine1, 14, 7)) Rfile.close '仮領域 Redim pKyoOt(0) pKyoOt(0).strAddr1 =pKyoIn(0).strAddr1 pKyoOt(0).strAddr2 =pKyoIn(0).strAddr2 pKyoOt(0).strAddr3 =pKyoIn(0).strAddr3 end function AInWork_Eki関数(フォーム.VB) private Sub InWork_Eki() Text2.txt= pKyoIn(0).strAddr1 Text3.txt =pKyoOt(0).strAddr1 Text4.txt =pKyoOt(0).strAddr2 Text1.txt =pKyoOt(0).strAddr3 end Sub |
|
投稿日時: 2004-04-05 08:54
いくつかお尋ねしたいのですが。。。
1.InvalidCastExceptionが、なぜ発生するか、お調べになりましたか? 2.ソースを書き写していらっしゃいますが、どこで発生するのでしょうか? 3.「InWork_Eki」で発生と仮定して、pKyoIn、pKyoOtの構造は、 どうなっているのでしょうか? お節介: pKyoIn(0).strAddr1 =Trim(Mid(StrLine1, 1, 7)) →pKyoIn(0).strAddr1 =StrLine1.SubString(1, 7).Trim() ↓↓一郎さん それは気がつかなかった。ということは、Text1などが「TextBoxではない」可能性もありますね!! [ メッセージ編集済み 編集者: Jitta 編集日時 2004-04-05 10:32 ] |
|
投稿日時: 2004-04-05 09:50
例外がどの行で発生するのか書いていただかないことにはなんとも・・・
あと、InWork_Eki()内のText2.txt等のtxtというのは何でしょう。 もしかしてTextBoxを継承して独自の機能拡張を行っていますか? |
|
投稿日時: 2004-04-05 14:11
記述ミスで申し訳ありません。
"txt"と記述してありますが、正式には"Text"です。 private Sub InWork_Eki() Text2.Text= pKyoIn(0).strAddr1 Text3.Text =pKyoOt(0).strAddr1 Text4.Text =pKyoOt(0).strAddr2 Text1.Text =pKyoOt(0).strAddr3 end Sub と正しくは記述します。 pKyoIn、pKyoOtの構造は全て文字列取得用です。 一郎さん 例外がどの行で発生するか調べてみました。 InWork_Eki()内でpKyoOt(0).strAddr1 をText3.textにセットしている所で エラーが発生していました。 Msgbox等でpKyoOt(0).strAddr1 等の中身を調べてみましたが、 データはきちんと取得されていました。 Text2.Text= pKyoIn(0).strAddr1 は問題ないでした。 |
1