• 締切済み

ListViewで処理経過表示

ListViewを使って処理の経過を表示する機能を作っています。例えば ***** Start ***** 001 処理1の開始 002 処理1の終了 003 処理2の開始 004 処理2の終了 005 処理3の開始 006 処理3の終了 ***** End ***** のような感じです。全て表示し終わると完了メッセージを表示し画面は閉じます。 処理件数が多くなるとListViewの見えない部分にデータが追加され、処理経過が分かりません。処理を追加しながら常にスクロールを下に移動する方法をお分かりの方がいましたらよろしくお願いします。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

WindowsAPIのSendMessageで、LVM_ENSUREVISIBLEを送ってあげてください。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listview/messages/lvm_ensurevisible.asp Call SendMessage(List1.hwnd, LVM_ENSUREVISIBLE, 一番下のインデックス, 0) #LVM_ENSUREVISIBLEのConstも必要です。

関連するQ&A

  • ListViewについて

    いつもお世話になっています。 タイトルの通り、ListViewについて2つ質問があります。 (1)ListViewにDBから検索したデータを代入してますが、動きが遅いんです。  各項目ごとで色を変更したりするためだと思いますが、ListViewの表示を速くする方法はなにかありませんか?  ちなみに今は、ListViewを2枚使って、データをセットしている間は、VisibleをFalseにして、  データセットが完了した時点で、Trueに切り替えています。 (2)(1)の動きで、ListViewを使っているところ、今表示されているListView(Iとします)で  クリックしたデータを次に表示させるListView(IIとします)に引き継がせたいです。  Iで、選択している行をIIで選択状態にすることはできたのですが、  Iで選択している行がスクロールして下にあった場合、IIでもスクロールした場所に  ListViewを移動させたいのですが、その方法が分かりません。 何かご存知の方がいましたら、教えてください。 よろしくお願いいたします。

  • 処理時間の計測中に、任意の時間が経過してしまったら、警告表示を行いたいですが、方法が分からないでいます

    C++で、 ある処理の実行に要する時間の計測を行う ソースを書いていたのですが、 時間の計測を開始してから、 3秒以上が経過してしまった場合にのみ、 処理の進行状況に関わらず、 「3秒経過済み」と表示してあげたいと思っていましたが、 時間の計測を、 「difftime」などで表示する方法は分かったものの、 処理の実行中に、3秒以上経過したら、 取り合えず、「3秒経過済み」と表示させる方法が 分からないでいます。 何かアドバイスいただけるとありがたいです。 宜しくお願い致します。 ====================== time_t start, end; time( &start ); //計測開始 //処理が実行される //処理時間の計測中に「最初の3秒が経過してしまった場合」にのみ「3秒経過済み」と表示してあげたい time( &end );//計測終了 ======================

  • 経過時間表示

    お世話になります。 System.nanoTime()を使い処理の経過時間を表示したいのですが、最終的にこれをナノ秒ではなく秒で表示したいのですが、0秒と表示されてしまいます。 long start = System.nanoTime(); //処理 long end = System.nanoTime(); System.out.println((end-start)/1000000000); 処理経過時間はナノ秒でだいたい8000000~10000000ナノ秒です。 ですので、10^‐9をかけて秒に直して0.008~0.01秒と表示させようとしたのですが、0秒と表示されます。 どのようにすればSystem.nanoTime()を使い0.008秒と表示できますでしょうか?宜しくお願いします。

    • ベストアンサー
    • Java
  • ListViewでのリスト表示(初歩的な質問です)

    WinXP Pro VB6.0で開発を行っています。 現在、ドラッグ&ドロップにより、ListViewでファイルのパスをリスト表示するプログラムを作成しています。 ListBoxではなくListViewを利用する理由は、パスの長さに合わせてスクロールバーを表示したいためです。 そこで、ドラッグ&ドロップイベントでファイルのパスを取得することは出来たのですが、単純なリスト表示ができません。 ListView1.ListItems.Add(, , tmpPath) でパスを追加しているのですが、プロパティの設定がよく分からずうまく表示できません。 Viewを2-lvwLstに変更し、何となく表示はしているのですが2列表示になり、縦のスクロールバーが表示されません。 なお、表示の際、ヘッダ部分は必要ありません。 また、パスのみの表示であるため、一項目の表示です。 プロパティの設定例を教えていただけませんか? 非常に初歩的な質問ですがよろしくお願いします。

  • C#:ListViewでのスクロールイベントの取得について

    .Net2003 C# にてアプリを作成しています。 .Netを始めて初心者です。(プログラミング経験も浅いです) ListView1とListView2を作成して、 ListView2がスクロールしたら、ListView1も同じくスクロールさせる と言ったListViewのスクロールの同期化処理を行いたいのですが、 ソースコードが思いつきません。 ListViewのイベント、プロパティにはスクロール情報を取得するモノが みつかりませんでした。 現在は下記サイトを参考にさせて頂き、スクロールイベントの発生をキャッチする所までは なんとかたどり着いたのですが、ここからどうやって ListView1にスクロール同期化をさせるコードを書いていいのかが 思いつきません。 何か参考になるHPや、コードがありましたら教えてください。 http://dobon.net/vb/dotnet/control/firescrollevent.html から以下コードを参考にしました。 protected override void WndProc(ref Message m) { const int WM_HSCROLL = 0x114; const int WM_VSCROLL = 0x115; switch (m.Msg) { case WM_HSCROLL: Console.WriteLine( "水平スクロールバーがスクロールされました。"); break; case WM_VSCROLL: Console.WriteLine( "垂直スクロールバーがスクロールされました。"); break; } base.WndProc(ref m); }

  • 重い処理の最中の経過を出力したい

    1分程度かかる処理を行っています。 10回のループを行っているのですが、1回のループが完了するごとに途中経過を表示したいのです。 (例)1/10経過しました。 しかし10回のループが完了してしまわないとprint命令で書いたテキストが、ブラウザに表示されません。 1回ごとに表示させる方法を教えていただけないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ExcelVBA処理経過をリアルタイムにグラフ表示したい

    ExcelVBAが、あとどれくらいで終了するか処理経過をリアルタイムにグラフもしくは%で表示させたいのです。 当然、ForやLoop処理などもあるので、何度、繰り返されて、どのくらい時間がかかり、後、どのくらいで終わるのかは、条件によって異なってくると思うので、自分で判定させるようにしなければならないかとは思っていますが・・ ソフトのインストーラーみたいな感じにヴィジュアル的に経過表示をさせたい(%での表示でも良いです)のですが、何か良い方法はありますでしょうか? ご教授いただけると幸いです。 よろしくお願い致します。

  • Accessで処理経過を表示したいのですが

    Accessでcsvデータを自動的に読み込み、テーブルに追加するマクロを作成したのですが、読み込むcsvファイルの数も容量も大きいため時間がかかります。(数分) このため、マクロの処理中はフリーズ状態となりタイトルバーに(応答無し)と出てしまう場合があります。 そこで、ポップアップダイアログのようなものを表示させて途中経過を表示させたいのですが良い方法はないでしょうか。

  • C#の処理をリアルタイムに表示させる方法

    いつもありがとうございます。 現在、visual C#を勉強中で、とても初歩的なことを聞いてしまうかもしれませんが、 よろしくお願いします。 かなり時間がかかる処理を作っているのですが、 すべて終わるまでツールが結果を表示してくれなくて困っています。 forやforeachのループを1回回るごとに データを表示させることは可能でしょうか? また処理途中で一時停止したいです。 具体的には、listviewにデータを表示させています。 たとえば以下のような処理ですが、すべ終わって結果が 表示されるのは、1個ずつリアルタイムにリストビューに 追加されていき・・・ さらに途中で一時停止をしたいと考えています。 for (int i=0; i<10000; i++) { 処理して得られたデータを listView1.Items.Add(データ); と追加 } 以上よろしくお願いします。

  • JSPで「処理中」をブラウザに表示

    サーブレット+DB、JSPでプログラムをしています。 以下の質問(CGIが対象です) http://www.okweb.ne.jp/kotaeru.php3?q=173368 と似たようなことを、JSPで行うにはどうしたらよいでしょうか。 サーブレットの処理中(長い処理)に、「処理中」のメッセージを表示して、終了したら完了ページに飛ばしたいのです。 「処理中」の表示はJSPでもJavaScriptでも、サーブレットから直接出力しても構いません。 さらに言えば、サーブレットではfor文で処理を回しているので、「○%完了」などが表示できたら最高です。 よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう