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

動的に変わるピクチャーボックスの内容を以下の配列変数に設定したいのです。

dim Pct(X) as picturebox

set pct(X) = form1.picture1

同じピクチャーボックスを表示したい場合は、以下のように変数から画面に設定したいのです。

set form1.picture1 = pict(X)

が、退避しているはずなのに、全てがおなじピクチャーになってしまいます。
そんなことってありますか?
私が間違っているところがあれば、教えてください。
ピクチャーの内容は、VBからExcelのグラフを編集した後、クリップボード経由でピクチャーボックスに貼り付けたものです。

A 回答 (4件)

#2 の訂正です。


Dim Pct(X) As Picturebox
で、いきなり
Pct(X).PaintPicutre
としようとしてもダメでした。
Pct(X) の中身が空だから(実体がないから)です。
Set Pct(X) = New PictureBox
なんてことしようとしてもできないみたいだし、
やはり、PictureBox をコントロール配列で用意しておくくらいしか方法がないような気がします。

この回答への補足

三度も・・・でした。ありがとうございました。

補足日時:2003/12/04 19:10
    • good
    • 0
この回答へのお礼

ご親切に二度もありがとうございます。複数画面開くことで対応しました。

お礼日時:2003/12/04 19:03

ダメだった理由は、No1さんと同じです。


とにかく、Set xx = xx
の物は全て、参照ですので、実体がコピーされる訳ではありません。

対処は、VB6まででしたら、PictureBoxを配列で
必要な数だけ用意しておき、表示内容をコピーするのが単純かと。
必要な数があらかじめ不明な場合は、Loadで配列内の個数を
後から増やせます。

No2さんの答えは、あってる気もしますが、pcx(X)に
別々のPictureBoxが設定されていないと
やはり同じ結果になるように思います。
(なにも設定されていなければ、エラー)
    • good
    • 0
この回答へのお礼

ありがとうございます。複数の画面を開くことで対応しました。お世話になりました。

お礼日時:2003/12/04 19:02

pct(X).PaintPicture form1.picture1.Picture 0, 0


で退避できるみたいです。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2003/12/04 19:01

そんなことあります。

(^_^;
というのは、これは退避していないからです。
Set AAA = BBB
というのは、参照先をセットしているだけで、中身はコピーされません。言い換えると「 AAA で見ているのは BBB ですよ。」ということです。
Set CCC = BBB
として、CCC を使って何か変更すると、一つだけ存在する実体(BBB が実体の場合もある)に変更が加えられるわけですが、AAA が見ているものも CCC が見ているものも同じ BBB なので、AAA で見ても変更されています。
このルールは PictureBox だけでなく、クラスなど、他のオブジェクトについても成り立ちます。
PictureBox の中身を退避(コピー)するには・・・どうすればいいんでしょうね。今、手元にVBがないのでわからないです。
    • good
    • 0
この回答へのお礼

ありがとうございました。自分がわかっていないことがよくわかりました。

お礼日時:2003/12/04 19:00

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