■100342 / inTopicNo.1) |
Designerの内容を書き換える方法 |
□投稿者/ もんた (10回)-(2022/07/16(Sat) 21:41:13)
|
分類:[.NET 全般]
http://bbs.wankuma.com/index.cgi?mode=al2&namber=99642
この質問ページの続きなのですが、
VB.NETを使ってOpenTKのプログラムを書いています。
GlControl1.GraphicsModeのSamplesを変更したいため
GlControl1.GraphicsMode = New GraphicsMode(New ColorFormat(8, 8, 8, 0), 24, 8, 4)
としたのですが、
GraphicsModeはReadOnlyなので、
一度、Destroyしてから再生成するか
生成時に宣言してください、というエラーが出ます。
そのため、Designer上で
Me.GlControl1 = New OpenTK.GLControl()
となっていたところを
Me.GlControl1 = New OpenTK.GLControl(New GraphicsMode(New ColorFormat(8, 8, 8, 0), 24, 8, 4))
と書き換えるとうまく動作することが確認できました。
しかし、一度VSを落として再起動すると、
フォームが開かなくなり、自動で元の
Me.GlControl1 = New OpenTK.GLControl()
に戻ってしまいます。
そのため、
一度GlControl1を消してから再生成しようと
GlControl1.Dispose
Me.GlControl1 = New OpenTK.GLControl(New GraphicsMode(New ColorFormat(8, 8, 8, 0), 24, 8, 4))
としてみたのですが、
GlControl上にうまく画像が表示されません。
仕方なく、Designer上のコードをForm上で実行しようと思い、
Designer上からGlControl1を消した後に
Designerのコードを以下のようにform上にコピーして使用しました。
Public Sub New()
InitializeComponent()
Me.GlControl1 = New OpenTK.GLControl()
Me.TableLayoutPanel1.Controls.Add(Me.GlControl1, 0, 0)
'
'GlControl1
'
Me.GlControl1.Anchor = System.Windows.Forms.AnchorStyles.Right
Me.GlControl1.BackColor = System.Drawing.Color.Black
Me.GlControl1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.GlControl1.Location = New System.Drawing.Point(218, 23)
Me.GlControl1.Margin = New System.Windows.Forms.Padding(1)
Me.GlControl1.Name = "GlControl1"
Me.GlControl1.Size = New System.Drawing.Size(360, 360)
Me.GlControl1.TabIndex = 130
Me.GlControl1.VSync = False
End Sub
また、
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Call GlControl1_Load(GlControl1, Nothing)
End Sub
のようにGlControlの初期化も行いました。
Form生成時にGlControlは表れるのですが
やはり、GlControl上に画像が描画されません。
というかInvalidateしてもPaintが呼ばれていないようです
これはどのようにすればよろしいでしょうか?
|
|