C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 配列を使って、何回押されたか判定する VB.NET2003


(過去ログ 58 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■33196 / inTopicNo.1)  配列を使って、何回押されたか判定する VB.NET2003
  
□投稿者/ 超初心者 (16回)-(2009/02/23(Mon) 04:14:25)

分類:[VB6 以前] 

(VB.NET2003)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'ピクチャーボックス1〜2のイメージをクリア
For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2}
picBox.Image = Nothing
Next
'ピクチャーボックス3〜4にイメージを設定
PictureBox3.Image = Image.FromFile("C:\image03.jpg")
PictureBox4.Image = Image.FromFile("C:\image04.jpg")
End Sub

Private Sub PictureBox3to4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click, PictureBox4.Click
For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2}
If picBox.Image Is Nothing Then
picBox.Image = sender.Image
Exit Sub
End If
Next
End Sub


上記は、ピクチャーボックス3〜4のどれかが押されるとピクチャーボックス1に押された画像が挿入され、
次にピクチャーボックス3〜4のどれかが押されると次はピクチャーボックス2に押された画像が挿入されるプログラムです。

あるカードゲームの役判定をするため配列を使って、

例えば、ピクチャーボックス1にピクチャーボックス3が挿入されたら配列は↓に
[3] = 1
[4] = 0
*[3]は、ピクチャーボックス3のこと。 1は挿入された回数

次に、ピクチャーボックス2にピクチャーボックス4が挿入されたら↓
[3] = 1
[4] = 1

それぞれ何回挿入されたか配列を使って判定するプログラムが作りたいのですが
初心者の自分には難しくて分かりません・・・。

どなたかご教授願います┏○
引用返信 編集キー/
■33197 / inTopicNo.2)  Re[1]: 配列を使って、何回押されたか判定する VB.NET2003
□投稿者/ も (71回)-(2009/02/23(Mon) 04:53:55)
No33196 (超初心者 さん) に返信
# 分類:[VB6 以前] だけど,
> (VB.NET2003)
# って書いてあるのは混乱します.
# (文法からして .NET っぽいのが分かりますが)

> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
> 'ピクチャーボックス1〜2のイメージをクリア
> For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2}
> picBox.Image = Nothing
> Next
> 'ピクチャーボックス3〜4にイメージを設定
> PictureBox3.Image = Image.FromFile("C:\image03.jpg")
> PictureBox4.Image = Image.FromFile("C:\image04.jpg")
> End Sub
>
> Private Sub PictureBox3to4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click, PictureBox4.Click
> For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2}
> If picBox.Image Is Nothing Then
> picBox.Image = sender.Image
> Exit Sub
> End If
> Next
> End Sub
>
>
> 上記は、ピクチャーボックス3〜4のどれかが押されるとピクチャーボックス1に押された画像が挿入され、
> 次にピクチャーボックス3〜4のどれかが押されると次はピクチャーボックス2に押された画像が挿入されるプログラムです。

# ↑ここまで状況説明?
# ↓ここから目的説明?

# と思うけど,区切りがないとよくわからない.

> あるカードゲームの役判定をするため配列を使って、
>
> 例えば、ピクチャーボックス1にピクチャーボックス3が挿入されたら配列は↓に
> [3] = 1
> [4] = 0
> *[3]は、ピクチャーボックス3のこと。 1は挿入された回数
>
> 次に、ピクチャーボックス2にピクチャーボックス4が挿入されたら↓
> [3] = 1
> [4] = 1
>
> それぞれ何回挿入されたか配列を使って判定するプログラムが作りたいのですが
> 初心者の自分には
# ここに (A)「なにが,どのように」が必要っぽい
> 難しくて分かりません・・・。
> どなたかご教授願います┏○
# 回答者としては上記の (A) が明記されていないと「ご教授」できません.

とりあえず,何が分からないのか(それが構文なのか,アプリケーションの動きなのか)を特定するところから始めてみては?
構文が分からなければぐーぐる先生に聞くといいかもしれませんが,
アプリケーションの動きを把握していないのならば,紙と鉛筆を使って調べ上げる必要があると思います.

あと,
> それぞれ何回挿入されたか配列を使って判定する
と有りますが,現状のソースだと,高々 1回ずつしかカウントできませんよね.
# つまり,「最初のクリックではピクチャーボックス 1に絵を挿入して,次のクリックではピクチャーボックス 2に絵を挿入して,
# その次のクリックでは...ピクチャーボックス 1も 2も Imangeが Nothingではないのでどうしよう」
# ということ.
引用返信 編集キー/
■33199 / inTopicNo.3)  Re[1]: 配列を使って、何回押されたか判定する VB.NET2003
□投稿者/ επιστημη (1766回)-(2009/02/23(Mon) 08:15:22)
επιστημη さんの Web サイト
2009/02/23(Mon) 09:29:02 編集(投稿者)

えーと...
配列: Dim count(N) As Integer ' Nはテキトー
を用意しておいて、
「画像番号i番が何回セットされたか」が
count(i) に入っていればいいですか?

ならば最初にcount()の全要素を0にしておき、
画像番号x番が選択された時に
count(x) = count(x) + 1
すればええわけですが。

それとも
「どの画像が押されたか」
がわかんないのかしら?
それなら

> Private Sub PictureBox3to4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click, PictureBox4.Click

の sender で判定できます。
# senderはそのイベントを発行した張本人です。

画像数がさほどに多くないならば

// 画像3にのみ反応
Private Sub PictureBox3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click
count(3) = count(3) + 1
...
End Sub

// 画像4にのみ反応
Private Sub PictureBox4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox4.Click
count(4) = count(4) + 1
...
End Sub

って分けちまった方が楽ですけどね。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -