アプリ版:「スタンプのみでお礼する」機能のリリースについて

ビジュアルベーシック2008、変数とグラフィックについて

こんにちは、いつも本当に皆様に助けられながら初心者なりにビジュアルベーシックを学んでおります。前回、三目並べの勝ち(3つ揃った場合)と負け(揃わなかった場合)の回数を別のダイアログに表示するためにはStatic変数(データを保持する変数)が必要だと教えて頂きました。それで現在Static変数を設定しているのですが

勝ちの場合
Static totalDecimal As String
totalDecimal = Label1.Text = +1

三目並べと同じページに回数を記録しているコードを活用してみたのですが…うまくいきませんでした。
3つ揃ったらメッセージボックスに勝ち、と表示→違うダイアログボックスの中のラベルに1と表示としたくて何度もStaticに挑戦しているのですが…。何か良い方法はないでしょうか。



もう一つ、現在VBを使ってグラフを作っています(期末テストの課題です)なんとか日本の国旗のコードは完成したのですが、

Private Sub Button2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Button2.Paint

以下グラフィックのコード

とこれではボタンを押してもグラフィックが表示されません。Call ButtonやもしButton2がクリックされた時グラフィックを表示、など試しているのですがエラーが出てしまいます。毎度頼ってばかりで申し訳ありませんがよろしくお願いいたします。

A 回答 (2件)

こちらで試した方法ですが、ダイアログを置きました。

そして、スタティック変数の代わりに、#1のイラストのモジュールレベル変数 B を置いて(Private でも、Public でもどちらでも可能)、ダイアログ(Dialog1)の呼び出しに対して、ダイアログ内に、Label を置き、

Dialog1.Label1.Text = B
Dialog1.Show()

とすれば、カウントは出ます。

Reset は、B = 0 とすれば、元に戻ります。
    • good
    • 0
この回答へのお礼

月曜日からひたすら悩み続けようやく今日出来ました!本当にありがとうございました。

お礼日時:2010/05/22 02:27

>Static変数(データを保持する変数)


Static 変数は良いのですが、

>違うダイアログボックスの中のラベルに1と表示としたくて

このダイアログボックスというのは、何を意味しているのですか?
Static 自体は、データの確保だけです。それを読み出すのに、ローカルのままでは取り出せません。

--Public Class Form1
Public B As Integer 'モジュールレベルの変数
-------------Sub Procedure1
Static A As Integer '<--これ自体はよいのですが、 Procedure1 の中だけです。ここから取り出すなら、以下のような、Call Procedure2(A) にして上げなくてはなりません。
それが面倒なら、B のように、モジュール・スコープレベルの変数を取って、そこでカウントしてあげなくてはりません。

-------------End Sub
-------------Sub Procedure2(ByVal A As Integer)

-------------End Sub
--------End Class


>Private Sub Button2_Paint
ボタンに表示するのですか?
通常は、Form (Form1_Pain) に出しますが、そうでない場合は、PictureBox を背景と色を合わせて、イメージファイルを呼び出します。

PictureBox1.Image = Image.FromFile("pic1.bmp") 'パス名がないと、

ここになります。C:\.....\Visual Studio 2008\Projects\[ProjectName]\[ProjectName]\bin\Debug\

この回答への補足

違うダイアログボックスというのは、三目並べのゲームのページとは別に「新しくフォームやダイアログを追加する」という欄からダイアログを追加して違うページにスコアを表示したいのです。その場合だとStaticより別の変数を使うべきですか?(どこかでStaticはページ内でしか有効ではない、と見た記憶が…)



>グラフの件了解致しました!ありがとうございます。

補足日時:2010/05/21 15:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!