![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VB2005初心者で困っています。
Menu.vbとForm1.vb, Form2vb, Form3.vb・・・を作り、Menu.vbのButton1_ClickでForm1.Show()としてForm1.vbに移行し、次にForm1のButton1_clickイベントでExcelからDataを読み込んでGraphを書かせています。(この時は問題なく動作しています)
これを、Form1に移行したらすぐにGraphを表示しようとして、Form1.vbの
Public Class Form1
Private Sub Button_Clic(Byval sender As System・・・・・)Handles Button1.click
Dim g As Graphics
・・・・
を変更して、
Private Sub Form1_Load(Byval sender As System・・・・)Handles MyBase.load
Me.Show()
Dim g As Graphics
・・・・
と、しましたが、一瞬Graphは表示しますが、すぐに消えます。
また、罫線はまったく表示しません。
Button_ClickイベントなしでForm1を動かすにはどうすればよいのでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Form1.Showで呼ばれたForm1_Load中で、Me.Show() を書いても、たぶん意味がありませんね。
(と言うか、そういう書き方をした事すら無い)
Showしない状態で(.NETだとインスタンスを生成したらLoadイベントは…発生するのか?
調べたこと無いけど…)Form1_Loadが呼ばれたなら、効果あると思いますが…
問題の現象は、一度表示しようとはするものの、Form_Loadが完了した時点で
Formが初期化されて、消えてるのかもしれません。
Form_Loadではなく、Form_Shownイベントで、グラフの描画を行ってみれば、
改善されるかもしれません。
なお、No.1のredfox63氏の指摘にもあるように、グラフィックスはメモリ上に
Bitmapで展開してから、それを参照するのが上策です。
直接書いただけでは、他のウインドウで隠されたりした時点で、消えてしまいます。
ご回答をいただきありがとうございました。
VBは初心者のためよく解らないことがあり、色々な本の寄せ集めになっているため、変なProgramになっているかもしれません。
Form_Shownイベントは早速確かめてみましたが、やはりせっかく表示したGraphや数値がすぐに消えてしまいました。
多分、ご指摘の通りFormが初期化されて消えているのだと思います。
もう少し検討してみます。
BTMについては単純な画像の表示ではなく、DrawLineやDrawStringでExcel Dataの分析結果を表示していますが、これも間違いでしょうか?
No.1
- 回答日時:
お作法に沿ったプログラミングをしましょう
一般的なVB.NETアプリなら 描画担当はPaintイベントが担当します
直接ControlやFormなどから Graphicsオブジェクトを構築して
描画するのは一時的な描画です
恒久的な描画をさせたいなら ImageかBitmapからGraphicsオブジェクトを作成し、描画処理を行い、GraphicsオブジェクトをDisposeしてから
その元になった ImageまたはBitmapをコンテナのImageやBackgroundImageなどに設定しましょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 空白のセルを変更しようとした時(アクティブセル)に インプットボックスを5回出す インプットボックス 1 2023/03/14 11:01
- Excel(エクセル) ハイパーリンクの削除について 2 2022/11/10 07:32
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) userformでSheetを選択して開くコード 1 2023/05/15 16:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語 ちらつき
-
ListBoxで改行したい
-
CADとC言語のリンク
-
OpenGLでのオブジェクトの描画上限
-
C#を用いて描画する四角形の角...
-
C#(.net) ドロー系ソフト作成 ...
-
PowerPoint の VBA
-
VC++のダイアログボックスに絵...
-
VB.NETでphotoshopのレイヤーの...
-
Form1.vbをイベントなしで動作...
-
ボタンの更新速度について
-
給紙トレイをダイアログを使わ...
-
win32api複数のタイマーを同時...
-
円の頂点の求め方を知りたいです。
-
VB.netで図形描画ができません^^;
-
worksheetFunctionクラスのVloo...
-
実行時エラー 438になった時の...
-
VBA シートのボタン名を変更し...
-
ユーザーフォームを表示中にシ...
-
「Columns("A:C")」の列文字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
給紙トレイをダイアログを使わ...
-
円の頂点の求め方を知りたいです。
-
C#を用いて描画する四角形の角...
-
VB.netで図形描画ができません^^;
-
c言語 ちらつき
-
Word 描画オブジェクトを削除...
-
ビットマップに描画をしてピク...
-
win32api複数のタイマーを同時...
-
PowerPoint の VBA
-
VB.NETでグラフィックを描くと...
-
C#で壁の当たり判定と自キャラ...
-
MFCでのコンボボックスについて
-
VB 6.0 PictureBox のプロパテ...
-
VC;;6.0のMFCで線を簡単に引け...
-
C#でPictureBox内での図形移動...
-
線の描画速度
-
画面に絵を出す方法
-
C# DrawImage 物理サイズでな...
おすすめ情報