• ベストアンサー

WinXPでMSFlexGridの表示が遅い

VB6で作ったアプリをWin2Kで動かすと、それなりに動くのですが、WinXPで動かすとやたら遅くなります。 何が遅くなっているか調べたら、MSFlexGridの表示でした。 10列×100行くらいの表で、ROW指定して10列×10行くらい表示更新すると、7~8秒かかります。 (Win2Kだと2秒くらい) って、こんなもんですか? ちなみに、WinXPの方がCPU.グラフィック性能は上です。 どなたか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

.Redraw=false; 表示更新 .Redraw=true; で速くなる。

musumusu
質問者

お礼

早速の回答ありがとうございました。 完璧ですね、助かりました。

関連するQ&A

  • MSFlexgrid

    はじめましてVB初心者です。 MSFlexgridでアクセスDBの内容を取り込んで 別のフォームのテキストに表示させたいのですが MSFlexgridの欲しい行をクリックしても表示はテーブルの 一番上のになってしまいます。 欲しい行は色が変わるので選択できていると思うのですが・・・ どなたか教えてください。 環境はwin2000,VB5(SP3),ACCESS97です。 宜しくお願いします

  • MSFLEXGRIDについて

    MSFLEXGRIDを使ってデータベースの内容を表示させようと考えています。 使い方としてはデータベースからfilterをつかって対象を絞ったデータをMSFLEXGRIDで項目を並び替えて表示させようとしたときにうまくいきません。 sqlで項目を並び替えてdatagridを使うしかないのでしょうか? なぜMSFLEXGRIDにこだわるかというと表示させた結果に対し、特定の行をダブルクリックすると別のフォームに移動するといったプログラムを作ろうとしているため、この方法がいいのかなと考えているからです。 どうかご教授のほどよろしくお願いします。 サーバー 2000 SQLサーバ2003 開発クライアントPC W2K VB6

  • VB6 MSFlexGridとPictureBox

    お世話になります。 Visual Basic6.0(SP6)で開発している素人です。 (質問1) PictureBoxのBackColorが変色できません。 Picture1.BackColor = &H80FF80 '緑色。色は問いません。 PictureBoxは色の変更はできないものなんでしょうか? (質問2) MSFlexGridでexcelの内容をセル指定して表示できたのですが、 指定のMSFlexGridの行の色を変えられません。20行3列で、○行目の1~3列を 色を変えたいです。 MSFlexGrid1.Row = 2 MSFlexGrid1.BackColorSel = QBColor(11) MSFlexGrid1.CellForeColor = QBColor(11) いづれもうまくいきませんでした。。。 (質問3) MSFlexGridでexcelの内容をセル指定して表示できたのですが、行の高さを 変更できません。 MSFlexGrid1.RowHeight(-1) = 800  '標準の行高さ指定(-1で全部を変更) と、やっても MSFlexGrid1 .RowHeight(0) = 800 '0行目の高さを800に MSFlexGrid1 .RowHeight(1) = 800 '1行目の高さを800に と、やっても 一番上の行しか高さが変わりません。 優先順位は 質問3 > 質問1 > 質問2 です。 急いでいますので、どなたかお願いします!

  • EXCELのデータをMSFlexGridへ

    VB6.0で開発しています。 EXCELのデータをMSFlexGridへ表示しています。 下のように表示出来たのですが 特定の行だけ表示したいのですがどうすればいいでしょうか? 例えばA列とC列とD列といった場合。 よろしくお願いします。

  • MSFlexGrid

    VB6SP6を用いています。MSFlexGridですが、固定行をラベルに用いています。このグリッドをクリックして処理を行っています。固定行では、クリックを無視してほしいのです。固定行をクリックしても、grid.Rowの値は0ではなく、押してもいない、1が返ってきます。本来はクリックしたくない場所ですが、処理を行う1行目をクリックしたことと同じになってしまいます。 ラベル部分をクリックしないようにと伝えていますが、やはり具合が悪いです。 良い、回避方法はないでしょうか。

  • VB6のMsFlexGridコントロールについて

    取得したデータ数分の行にデータを表示して その後10カラム目のデータでソートしているのですが 行選択状態の表示が消えてしまいます。 MSFlexGrid1.Col = 10   MSFlexGrid1.Sort = flexSortGenericDescending '* 降順にソート MSFlexGrid1.Row = 1 どうやら、Col、Rowプロパティに値を設定した時点で消えているようです。 これらをやらないと1行目が選択状態と なっています。表示後カーソルでクリックすると 行選択状態になります。 表示時点で行選択状態にさせたいのですがなにか 手段があれば教えてください。 設定しているプロパティは下記の通りです。 HighLight=1:(選択を強調表示) SelectionMode=1:(行全体を選択) よろしくおねがいします。

  • VB6.0 MSFlexGridのMouseRowプロパティについて

    研修中の新人です。 テキストファイルからランダムアクセスをしMSFlexGridに表示させる課題を作成しています。 MSFlexGridに表示させた行の更新、削除について考えています。 MouseRowプロパティで得られる行の番号というのはMSFlexGridに表示させている行の番号でしょうか。 それとも検索で得られた行全体の中の番号でしょうか。 例えば検索で50件得られMSFlexGridに表示したとします。 MSFlexGridは10件ずつしか表示しないとします。 41件目から50件目をスクロールして表示させ50件目をクリックしたとき、 MouseRowは"10"を返すのでしょうか。それとも"50"を返すのですか。 もし、"10"をかえしてしまうのなら列幅を0にしてファイルの行番数を格納しておくような列をつくります。(行番号は表示させてはいけない) そうではなく、"50"を返すなら配列に検索一致したファイルの行番数を格納しておく方法でコードを書こうと思います。 ご存知の方お願いします。

  • MSFlexGridのスクロールバー位置

    VB5(SP3)です。 ある検索条件でMSFlexGridに100行表示させた後、垂直スクロールバーで50行ほど下方向にスクロールさせます。 この状態で違う検索条件で1行表示させた時、垂直スクロールバーの位置が変わらないため(TOPにこない)に何も表示されません。垂直スクロールバーを上方向にスクロールさせれば出てきます。 垂直スクロールバーをTOP位置に持ってくる方法はありませんか? MSFlexGrid.VscrollBar.Value=0とかあれば・・・・

  • VB6のMSFlexGridでセルをマージしたい

    お世話になります VB6のMSFlexGridでセルをマージしたいのですがうまくいきません 行イメージは以下になります。 ------------------ | AA | 1 | 2 | 3 |    ------------- |   | A | B | C | ------------------ | AA | 4 | 5 | 6 |    ------------- |   | D | E | F | ------------------ | BB | 1 | 2 | 3 |    ------------- |   | A | B | C | ------------------ | BB | 4 | 5 | 6 |    ------------- |   | D | E | F | ------------------ 1行目と2行目の先頭をマージしてtext="AA" 3行目と4行目の先頭をマージして上と同じtext="AA" 5行目と6行目の先頭をマージしてtext="BB" 7行目と8行目の先頭をマージして上と同じtext="BB" flexMergeFreeもMergeRowも試したつもりなのですが、うまくいきませんでした。 記述の順番なのかな? With oObjGrid .Col = 0 .Row = 0 .Text = "AA" .Row = 1 .Text = "AA" ' ※ここでマージ処理を試したつもり .Row = 2 .Text = "AA" .Row = 3 .Text = "AA" ' ※ここでマージ処理を試したつもり .Row = 4 .Text = "BB" .Row = 5 .Text = "BB" ' ※ここでマージ処理を試したつもり .Row = 6 .Text = "BB" .Row = 7 .Text = "BB" ' ※ここでマージ処理を試したつもり End With ※以下を色々な順番で試したのですが、だめでした .MergeCells = flexMergeFree .MergeRow(0) = True .MergeRow(1) = True .MergeCells = 2 'マージの指定 .MergeCells = 3 'マージの指定

  • MSFlexGridで↑や↓押下時の処理

    現在VBの勉強をしております(WindowsXp、VB6.0) MSFlexGridの行を選択すると、行のデータをテキストボックスへ表示する、といった処理を実装したんですが、キーボードの「↑」や「↓」押下時に、選択行は変わるんですが、クリックイベントでもフォーカスイベントでも処理を拾えません・・・。 まだ試してはいないんですが、keyDownイベントで、「↑」「↓」を判断し、更にグリッドにフォーカスが存在する場合に、1行上(または下)のデータをテキストボックスに表示する。 という処理をしないと不可能でしょうか? どう考えても上記の方法はスマートでは無いなぁと思い、何か良い方法があれば教えていただきたく質問させていただきました。 よろしくお願いいたしますm(__)m