Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
PictureBoxに画像
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10900#CommentId23887
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
 (社会人)
投稿日時
2012/6/16 07:18:29
> Form1のボタンを押すとForm2の背景が変わるというのはどうやってやるんでしょうか・・?
> これがどうしてもできなくて・・泣
とのことですが、「回答する側」にとっても
(’▽’)ノシ さんご自身で「出来るようになったこと」や「分かっていること」というのは
ものすごーく重要な手がかりとなります。
なので
> 1)まず Form1に対して「手作業で」背景を変えることは出来ますか?
ひとくちに背景を変えるといっても、背景色を変更するとか背景の画像を変更する
とか色々ありますが↓のページが参考になると思います。
入門講座・第3回 プロパティをいじろう
http://homepage1.nifty.com/rucio/VBNyumon/BEGIN3.htm
→フォームの背景に画像を指定する (BackgroundImageプロパティ)
→フォームの背景色を赤にする (BackColorプロパティ)、などが載っています
もし、1)が出来たとしたら、
> 2)今度は手作業ではなく「プログラムから」Form1の背景を変えられますか?
この辺りが上手くいかないのであれば、↓のページが参考になると思います。
入門講座・第4回 イベントを逃すな
http://homepage1.nifty.com/rucio/VBNyumon/BEGIN4.htm
→Form1の背景画像(Me.BackgroundImage)の設定例が載ってます
初級講座・第1回 色をあやつる
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard1.htm
→ Form1の背景色(Me.BackColor)を変更する例が載っています
さらに、2)も大丈夫!となれば
> 3)次はいよいよ「Form2を表示させる」ですが、
これはすでに 魔界の仮面弁士 さんがご紹介して下さったページが参考になりますね。
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard29.htm
#実はこの辺り↓ともビミョーに絡んできます。
> 4) Form2 の 背景を変えるには?
おそらく、ここら辺で一番混乱しちゃうのは、
どのタイミングで操作するのか、という部分ではないかと思います。
たとえば、一言で Form2を操作する、と言っても
> A) デザイン画面で(プログラムを実行する前に)、Form2の設定をしておく
> B) Form2 を表示させるタイミングで、Form2に対し何かの処理を行いたい
> C) すでにForm2 を表示している段階で、Form2に対して何か操作をしたい
などなど、それぞれで微妙にやり方が変わってきちゃうんですね。同じコードなのに
「それを何処に書くのか」で実行されるタイミングが変わってきちゃうんです。
どんな感じかと言うと、これまでに
(’▽’)ノシ さんご自身で「出来るようになったこと」を思い出していただきたいのですが、、、
> form2に画像がでるようになりましたが、
> クリックしないと画像が表示されません・・・
これはコードを「ボタンをクリックしたときに実行される場所」に書いていたからです。
、、、よね?
> できました!
また
> Form2のLabelに文字が表示されるのはどうやってやるか教えてください。
についても、るきお先生 のコード例を基に、
#Form2をはじめて表示するタイミングであれ、Button2をクリックするタイミングであれ
Form2 の Label に文字を表示することは出来ましたよね。
> できました!
> ありがとうございました。
で、このとき記述した場所こそ異なりますが、Form2 の Label に文字を表示させるコードは、どちらも
> f2.Label1.Text = "文字"
という同じコードでした。
要するに、
同じコードでも記述する場所が違えば、実行されるタイミングも違う、、、という辺りまでは
何となーくイメージできてるんだろうな?・・・ということにして次に進みたいと思います。
#もし良く分からなかったら「分からない部分」を質問してくださいね
ひと休み
さて、上の方で紹介したページの、フォームの背景色を赤にするコードや
背景画像を設定するコードなんですが
> Me.BackColor = Color.Red
> Me.BackgroundImage = Image.FromFile("C:\Windows\大草原の風.bmp")
これらのコードは分かりますでしょうか?
もうチョッと具体的に言うと、Me ってどんな意味合いだか分かりますか?
第4回 イベントを逃すな
http://homepage1.nifty.com/rucio/VBNyumon/BEGIN4.htm
たとえば↑このページの説明では
> Me (Me = ミー)はこの場合はフォームのことです。
とありますが、これを少し具体的に言うと、Form1 の側でコードを書く場合
Me は、自分自身、つまり Form1 を意味します。・・・なのですが、もしこれが
Form2 の側でコードを書いているとしたら、Me は Form2 を意味することになります。
#この辺は大丈夫ですか?
#もし分からなかったら「どこら辺が分からないか」を質問してください
ここは「分かったよ!」ということにして次に進みますが
じゃあ、Form1 側のコードから、Form2 の側を操作する場合には、一体どうすれば良いのでしょうか、
何かアイデアは浮かびますか?想像も付きませんか?
実は(’▽’)ノシ さんは、すでに(気付かぬ内に?)そんなスゴイ(!)ことやちゃってるんです。
> f2.Label1.Text = "文字"
というコードがそうです。
いよいよ本番!
このコードは Form1 の側に書いてますから、これをうっかり
> Me.Label1.Text = "文字"
と書いてしまえば、Form1 のラベルが書き換わってしまいます。
そこで、るきお先生 の書いたコードを、もう一度見直してみると
> Public Class Form1
> Dim f2 As Form2
> Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
> f2 = New Form2
> f2.Show()
> End Sub
> Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
> f2.Label1.Text = "文字"
> End Sub
> End Class
最初の方で
> Dim f2 As Form2
とあります。これは
「f2 ってのは Form2 のことだからね、宜しくね!」と VB に教えている部分です。なので
> f2.Label1.Text = "文字"
と記述すると、VBは
「あ、f2 というのは Form2 のことだよね!」と、その意味をきちんと理解して
(Form1に書いたコードなのに) Form2 側のラベルを書き換えてくれてたんですね。
・・・だとしたら、この f2 を上手く利用して、
#もちろん VBに、f2は「 Form2 のことだよ!」と教えてなきゃダメですが
たとえば ↓のような Form1 の側に書いたコードを上手に書き換えて
> Me.BackColor = Color.Red
> Me.BackgroundImage = Image.FromFile("C:\Windows\大草原の風.bmp")
望み通りに Form2 側の、背景色や、背景画像を変更させちゃうような
何か上手いアイデアは思い浮かびませんか?少しも想像が付きません?
#もし良く分からない所があったら「ココが分からない」と質問してくださいね
何だかクイズ(笑)みたいになっちゃいましたけど、
VBからの挑戦状!(?)みたいな感覚で、謎解きに挑戦してみてください。
#解けそうで解けない感じですか?もうチョッとで何かひらめきそうですか?
何はともあれ、最後まで読んで下さいまして有難うございます。
ここまで長々と読み続けて頂いたご苦労に比べれば、こんな VBの挑戦状なんて
雑作も無いことかもしれません。ただ何処か一ヶ所でも引っかかっていたりすると、
なかなか視界が開けて来なかったりするんですよね。
#ほんのチョッとしたひらめきで一気にパーッと視界が開けることもありますよ
最後にもう一度、お終いまで読んでくれて本当にありがとう!