• ベストアンサー

line 関数について

VBでline関数を用いて線をひこうと考えているのですが イベント関数内では線が引かれるのですが イベント関数から call で呼んで実行したら線がひけません どうしてでしょうか? 教えて下さい。宜しくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

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の中に線が現われました。 何処が異なるか見てみて下さい。

nao0
質問者

補足

pictureboxとかではなく、formに直接 線をひきたいのですが・・ またイベントを発生させずform_loadする時またはイベント発生前に絵書きたいのですが どのようにすれば・・・? 説明下手で申し訳ございません

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

再び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)
回答No.1

こんにちは。maruru01です。 Line関数? Lineメソッドではないのですか? Lineメソッドのことなら、Callで呼ぶというのはどうやっているのですか。 それともWin32APIのLineTo関数のことでしょうか。

nao0
質問者

補足

説明不足で申し訳御座いません Lineメソッドが含まれている関数をcallした場合 ということです 誠に申し訳御座いません

関連するQ&A