- - PR -
VB.NET 複数タイマーの処理について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-06-18 18:04
早速、ありがとうございます。 早速、記述して確認したのですが、「aTimerが宣言されていません」とエラーなってしまいます。 たぶん、スコープの問題だと思うのですが、最近、VB.NETを始めたばかりで、よく理解できておりません。 さらなる勉強をいたしますが、もう少しだけご教授ください。 イベント処理の中で、aTimerと比較するには、どうしたらよいでしょうか? | ||||||||||||
|
投稿日時: 2007-06-18 19:56
一郎さん レスポンスありがとうございます。 オブジェクトの比較をすることは理解できました。 それで、いろいろ調べているのですが、VB.NET初心者のため、今回のイベントハンドラの中で、引数であるsource と元のaTimer をどのように比較すれば良いのか、ご教授いただけませんでしょうか? aTimer をプロシージャーの外で宣言してみたのですが、エラーになってしまいます。 | ||||||||||||
|
投稿日時: 2007-06-18 22:09
あれ?僕の最初の返信で
となっていたので、aTimer と bTimer を Form1 のメンバにする記述は省いちゃったんですけれど。。。 ということで、
スコープの問題ですので、問題ないところに aTimer と bTimer を移動してください。 _________________ かるあ のメモ と スニペット | ||||||||||||
|
投稿日時: 2007-06-18 22:37
Subプロシージャーの外で、下記の宣言をして、
Private Shared aTimer As New System.Windows.Forms.Timer() Private Shared bTimer As New System.Windows.Forms.Timer() タイマーイベントハンドラ内で、下記記述をしたところ、うまく選択できました。 いろいろありがとうございました。 If source.Equals(aTimer) Then Debug.WriteLine("aTimer elapsed") ElseIf source.Equals(bTimer) Then Debug.WriteLine("bTimer elapsed") End If 関連して、もう少しだけ、ご教授願いたいのですが、 Subプロシージャーの外の宣言を、aTimer,bTimer ではなく aTimer() のような配列にしたいのですが、どのように記述したら良いでしょうか? 一般的な変数の配列はわかるのですが、今回のようなタイマーオブジェクトの配列をどのように、宣言すればよいのか、いろいろ試していますが、解決できておりません。 ↓のようでは、当然だめですよね Private Shared aTimer(5) As New System.Windows.Forms.Timer() お手数おかけいたします。よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2007-06-19 00:57
一般的な変数っていうのが何かはわかりませんが、特に変わりはないと思いますよ。 ガワを作って中身を入れてあげればいいわけですから。
List(Of T)などのコレクションを使うのもいいと思います。 このあたりは入門本や入門サイトにトピックがあると思うので、のぞいてみるといいですよ。 _________________ かるあ のメモ と スニペット | ||||||||||||
|
投稿日時: 2007-06-19 01:40
ありがとうございます。 質問の前に、自分でも同じようなコード書いてみたのですが、なぜかエラーになってしまいました。 かるあさんのを参考に再度コード書いたら、うまくいきました。 初歩的ミスかと思われます。 大変失礼しました。 ありがとうございました。 |