- ベストアンサー
line 関数について
VBでline関数を用いて線をひこうと考えているのですが イベント関数内では線が引かれるのですが イベント関数から call で呼んで実行したら線がひけません どうしてでしょうか? 教えて下さい。宜しくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Form1にCommandButton1とPicture1を貼り付けました。 Command1をクリックして Private Sub Command1_Click() x1 = 50: y1 = 300: x2 = 500: y2 = 1000 Call drawline(x1, y1, x2, y2) End Sub Module1に Sub drawline(x1, y1, x2, y2) Form1.Picture1.Line (x1, y1)-(x2, y2) End Sub にして実行するとPicture1の中に線が現われました。 何処が異なるか見てみて下さい。
その他の回答 (2)
- maruru01
- ベストアンサー率51% (1179/2272)
再びmaruru01です。 >またイベントを発生させずform_loadする時またはイベント発生前に絵書きたいのですが でもFrom_Loadもイベントなんですけど・・・ などという突っ込みはさておき、フォームのLoadやInitializeイベントではフォーム自身に線を引くことは出来ないようです。 従ってフォームを立ち上げた時に線を書くのなら、ResizeかActivateイベントに書けば出来ます。 ただし、ResizeやActivateイベントはフォーム立ち上げ時以外でも発生するので、立ち上げ時のみ線を引くようにしなければならないでしょう。 例えば、モジュールレベルの変数を、 Private flag As Boolean と宣言しておいて、フォームのLoadイベントで、 flag = True にして、フォームのResizeイベントで、 If flag Then Call DrawLine flag = False End If とするとか。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 Line関数? Lineメソッドではないのですか? Lineメソッドのことなら、Callで呼ぶというのはどうやっているのですか。 それともWin32APIのLineTo関数のことでしょうか。
補足
説明不足で申し訳御座いません Lineメソッドが含まれている関数をcallした場合 ということです 誠に申し訳御座いません
補足
pictureboxとかではなく、formに直接 線をひきたいのですが・・ またイベントを発生させずform_loadする時またはイベント発生前に絵書きたいのですが どのようにすれば・・・? 説明下手で申し訳ございません