アプリ上のボタンを押すと以下のLoadData()が実行され、
データセットにcsvファイルの情報が代入されるのですが、
一度実行されるとソフトを再起動しないと、ボタンを押しても再度同じ動作をしてくれません。
今回の場合、フォームに入力された数値が変数expに代入され、
代入された数値をcsv内で検索し、ヒットすればその行だけ読み込むというプログラムですので、一度実行されても再度別の数値で同じ動作を繰り返し行いたいのです。
初歩的な事かと思いますが、どうすれば再起動しなくても同じ動作を繰り返すようになるのか教えてください、よろしくお願いします。
public void LoadData()
{
string path = @"C:\Documents and Settings\PC USER\デスクトップ\222.csv";
string strLine;//1行分のデータ
int p;
string exp;//この文字を含む行のみを読み込む
exp = textBox1.Text;
Boolean fileExists = System.IO.File.Exists(path);
if (fileExists)
{
System.IO.StreamReader sr = new System.IO.StreamReader(path, System.Text.Encoding.Default);
while (sr.Peek() >= 0)
{
strLine = sr.ReadLine();
p = strLine.IndexOf(exp);//指定文字が変数内にあるかどうかチェック
if (p > 0)
{
strData = CsvToArrayList1(strLine)[0];
Dbuse.Dbusetable.AddDbusetableRow
(
strData[0],
int.Parse(strData[1]),
strData[2],
strData[3],
strData[4]
);
}
else { }
}
sr.Close();
}
No.1ベストアンサー
- 回答日時:
ボタンがイベント処理中の状態になっていませんか?
言い換えると、ボタンのClickイベントに対応付けした
イベントハンドラ処理(関数/メソッド)がちゃんと終了していないのでは?
もうちょっと具体的に書くと、
下記★★部分のどこかで処理が止まっているため、
次のClickイベント処理を開始できていないような気がします。
---------------
(ボタン押す)
↓
Clickイベントが発生
↓
Clickイベントハンドラが実行開始
↓
★★ここで処理が止まっています★★
↓
Clickイベントハンドラが終了
↓
Clickイベントが終了
↓
(次のイベントが処理可能になる)
------------------
デバッガを利用して
「LoadData()処理」や「ボタンのClickイベントに対応付けしたイベントハンドラ処理」が
・ちゃんと最後まで終了しているか
・無限ループに陥っていないか
・IO入力待ちで止まっていないか
などを確認すべきだと思いますよ。
お返事ありがとうございます。
初心者な物でして、お恥ずかしながらデバッガを利用してこれらを確認する方法がわかりません…
この件に関してのみ再度質問させていただこうと思います。
解決への手がかりになりそうです、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS側からEXCELの書式を設定...
-
VBSの処理中一旦処理を止めて再...
-
Application.ScreenUpdating=Fa...
-
VBA kernel32 の意味
-
キーボード入力、マウス操作を...
-
VB6 コマンドボタン クリック...
-
Stack around the variable 'xx...
-
VBSで応答不要のメッセージボッ...
-
Excel VBA で処理中断(DoEvents...
-
Excel VBA 実行中に一瞬フリー...
-
WEB上にボタンが押せない
-
Timerのカウントダウンのしかた...
-
エディットコントロールへの表示
-
マウスのクリックを無視したい
-
VBスクリプトで「お待ち下さい...
-
処理中ですよ!のメッセージ
-
C#でチェックボックスボタンで...
-
メッセージボックスのボタン名変更
-
thunderbirdのメッセージフィル...
-
Excelのワークシートに行を挿入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
メッセージボックスのボタン名変更
-
ACCESS側からEXCELの書式を設定...
-
VBSで応答不要のメッセージボッ...
-
VBA kernel32 の意味
-
エクセルVBAでクリップボード内...
-
【C#】 あるイベントから別イ...
-
Excel VBA で処理中断(DoEvents...
-
VBA メッセージボックスを自動...
-
Application.ScreenUpdating=Fa...
-
Excel VBA 自動的に閉じるMsgBox
-
ASP.NETでのメッセージ画面を出...
-
メッセージBOXの「はい」「いい...
-
「キャンセル」ボタン付きの処...
-
B列に特定の文字列が入っている...
-
シャットダウン時のExcel強制終...
-
ASP VBScriptでスクリプト実行...
-
起動後直に実行するコードはど...
-
MFCのメニューバーのイベント取得
-
アクセスでのキー送信について
おすすめ情報