フォームロード時にパネルコントロールへの文字列の描画ができない
- 題名: フォームロード時にパネルコントロールへの文字列の描画ができない
- 著者: 辛子明太子
- 日時: 2004/03/12 14:44:13
- ID: 3010
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: フォームロード時にパネルコントロールへの文字列の描画ができない
- 著者: Sugi@ぱぱんぶぃびぃ
- 日時: 2004/03/12 15:24:31
- ID: 3013
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: フォームロード時にパネルコントロールへの文字列の描画ができない
- 著者: 辛子明太子
- 日時: 2004/03/12 18:05:14
- ID: 3020
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
フォームのロードイベントで、
フォーム内のパネルコントロール内への描画を行っているのですが、
何故か描画してくれません。
Private Sub frmMakeQg_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
| 中略(ActiveXコンポーネントの動的配置等)
|
|
putData(Me.HScrollBar1.Value)
End Sub
Private Sub putData(ByVal i As Integer)
Me.label1.Text = i.toString() 'ラベルにiを表示。
'Panel1のGraphicsオブジェクトを取得
Dim g As Graphics = Me.Panel1.CreateGraphics
'黒で塗りつぶす
g.Clear(Color.Black)
'文字列を描画
g.DrawString([文字列], [フォント], Brushes.White, 4, 4)
g.Dispose() '描画用Graphicsオブジェクトを開放する。
|
| 中略
|
End Sub
上記のputDataプロシージャは、他の箇所からも呼ばれるのですが、
他の箇所から呼ばれた時はきちんと描画してくれるのです。
つまり、フォームロード時(初回)だけ描画してくれないのです。
[フォント]は、Declarationsで宣言してあります。
Private [フォント] As New Font("MS UI Gothic", 20)
[文字列]も空白ということはないようです。(デバッグしました)
フォームロード時には、ActiveXコンポーネントの動的配置を行っています。
これは、デザイナでActiveXコンポーネントを配置すると、
フォームロード時のputData処理で、文字列の描画だけでなく、ラベルにiを
表示する処理も行ってくれませんでした。
どなたか、この原因がわかる方いらっしゃいませんでしょうか
フォームを最小化してまた元に戻したのですが、
やはり何も変化ありません。Invalidateメソッドを使っても、全く
描画されないのです。たぶん、最初の描画処理自体、なされていないのでは
ないかと思います。
一応、ブレークポイントを入れて、デバッグしながら各変数値、ロジック等
思惑通りに動いているのですが
これが実行時のメモリ等に関係があることでしたら、
何がいけないのでしょうか。どなたかご教授お願い致します。