質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

3327閲覧

Visual Basic でのDATAGRIDVIEW でのレコードセレクタ移動

otojiro

総合スコア35

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2017/05/05 12:33

Visual Basic(VisualStudio2015)にて、フォームにDATAGRIDVIEW でデータベースのデータをリストして表示しております。

やりたいことはフォーム上のボタンを押した際に先頭レコードから順に最終レコードまでレコードセレクタを移動です。

現状は
ボタンクリックで先頭行の0,0セルを
dGrid.CurrentCell = dGrid(0, 0)
まずカレントレコードとして移動して先頭レコードに移動
(dGridは使用しているDatagridviewを定義しています。)
その後For~nextでレコードを進めていっております。

dGrid.CurrentCell = dGrid(0, 0) rCount = dGrid.Rows.Count - 1 For i = 1 To rCount dGrid.Visible = True dGrid.CurrentCell = dGrid(0, i) dGrid.Select() System.Threading.Thread.Sleep(1000) Next i

現状こんな感じのソースですが、実際はFor~next間で各レコードに対してデータ入力などの処理をしております。
ただ、各行のレコードセレクタ?選択している行の左にある黒い▲が順に移動(進んで)していかず、最終レコードまで行かないとセレクタが移動しません。

ボタンクリック時に先頭に移動して、プログラム終了後に最終レコードまで一気に移動している状況ですので、
今どの行を処理しているか視認できない状況です。

For~Next間にmsgbox("")を挟んでやると▲のセレクタが1レコードづつ進んでいきます。
動きが早すぎて見えないのか?と思い、テストでSystem.Threading.Thread.Sleep(1000)を挟んでみても駄目でした。

解決策がありましたらお願いいたします。
Microsoft ACCESSから移行してきてVBをまだ始めたばかりで根本的に間違っていたらそちらもご指摘ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

大雑把な説明になります。

多分ボタンのクリックイベントに記述されていると思いますが、
このボタンクリックイベントから抜けないと新たなイベントが処理されません。
ですので、▲が最後まで移動したところで再描画されることになります。
msgbox("")を挟んでやるとメッセージボックスのためにイベントが処理されるので
再描画がしょりされ、▲が一行づつ進んで見えるようになります。
ループ内に

VB.NET

1Application.DoEvents()

とイベントを処理するように記述すればその時点で再描画されるようになります。

投稿2017/05/05 12:49

YAmaGNZ

総合スコア10222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otojiro

2017/05/05 12:54

YAmaGNZ様 試したところばっちりです! 希望道理の動作になりました。 ありがとうございます。 >このボタンクリックイベントから抜けないと新たなイベントが処理されません。 この部分とても勉強になりました。 今後もこの知識が役に立つ時が競うです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問