![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
すいません、VB.Net2003の初心者です。
いろいろ調べたのですが解らないので教えてください。
VB.Net2003 SQLServer2000という環境なんですが
Form1に
Private Sub Timer1_Tick(・・・
lblMessage.Visible = Not lblMessage.Visible
End Sub
Private Sub Form1_Load(・・・
Me.Timer1.Start()
End Sub
と書いて単独で開くとちゃんとメッセージは点滅するのですが、これに
Private Sub From1_Activated(・・・
Dim Form2Form As New Form2
Application.DoEvents()
Dim strSQL As String
Dim intRemainder(4) As Integer
Dim i As Integer
For i = 1 To 3
strSQL = "SELECT COUNT(TelW) AS RemainderCount "
strSQL &= "FROM dbo.ma_Customer "
strSQL &= "WHERE (CallDayNo1 IS NULL) AND "
strSQL &= "(CallNo" & i & " > 0)"
Try
cmd = New SqlCommand(strSQL, Cn)
intRemainder(i - 1) = cmd.ExecuteScalar
Catch ex As Exception
Dim strMsg As String = Err.Number & ex.ToString
MessageBox.Show(strMsg)
End Try
cmd = Nothing
Next
Me.Hide()
With Form2Form
.lblNo1.Text = intRemainder(0).ToString("#,##0")
.lblNo2.Text = intRemainder(1).ToString("#,##0")
.lblNo3.Text = intRemainder(2).ToString("#,##0")
.ShowDialog()
End With
Me.Close()
End Sub
というコードを加えてループ処理を実行している間メッセージを点滅させたいのですが点滅しません。どう書いたら良いのでしょう?
No.1ベストアンサー
- 回答日時:
残念ながら、Timerコントロールでは、他の処理を実行している間に並行して処理を行う事は出来ません。
なので、スレッド処理を行って点滅させる必要があります。
下に重い処理をしながら、ラベルを点滅させる処理を書いておいたので、それにSQLの実行処理を加えて下さい。
Public Class Form1
Inherits System.Windows.Forms.Form
(略)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cls別処理 As New Class別処理
Dim thre重い処理 As New System.Threading.Thread(AddressOf cls別処理.重い処理)
'スレッド実行
thre重い処理.IsBackground = True
thre重い処理.Start()
'本体はループする
While (cls別処理.処理中)
Me.Label1.Visible = Not Me.Label1.Visible
Application.DoEvents()
System.Threading.Thread.Sleep(100)
End While
'終了MSG
MessageBox.Show("終了しました。結果は" & cls別処理.int結果.Tostring)
End Sub
End Class
Public Class Class別処理
Private bln処理中 As Boolean = True
Public ReadOnly Property 処理中() As Boolean
Get
Return bln処理中
End Get
End Property
Public int結果 as integer
Public Sub 重い処理()
'重たい処理を記述する
System.Threading.Thread.Sleep(5000)
'処理終了時に、フラグと値を返す。
bln処理中 = False
int結果 = 10
End Sub
End Class
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
メルカリのメルカードで買い物...
-
VBAでループ内で使う変数名を可...
-
DoEventsがやはり分からない
-
findは動くがfindnextがマクロ...
-
【Excel】特定の文字を含むセル...
-
セルの値が0はクリアするマクロ
-
switch の範囲指定
-
NULLを含むフィールド値の条件分岐
-
FFTの結果ついて
-
インタラクティブの反対語は?
-
リョウ・・・量?料?
-
取り消し線が入った文字を削除...
-
Select Case文でこのようなこと...
-
VBの質問#if 0 then ってどう...
-
VBAの処理待ち画面について
-
VB.NET Excelを読み込んでDataT...
-
CPUを二個積めば処理速度は...
-
50代の男性の方に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
DoEventsがやはり分からない
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
VBの質問#if 0 then ってどう...
-
VBAでCOPYを繰り返すと、処理が...
-
EXCEL VBA マクロ 実行する度に...
-
findは動くがfindnextがマクロ...
-
インタラクティブの反対語は?
-
UMLでの例外処理
-
リョウ・・・量?料?
-
Do~Loopした回数をカウントしたい
-
セックスレスの既婚女性は自慰...
-
月度は何て読みますか?
-
セルの値が0はクリアするマクロ
-
Loadイベント中にほかのイベン...
-
FFTの結果ついて
おすすめ情報