Hallo liebe Leute,
ich habe mir ein Usercontrol (einen Container) erstellt, welches später diverse andere Usercontrols beinhalten soll.
Sodass ich nachher nur Befehle benutze wie "container.AddTextbox" oder "container.AddDateField"
>> Quellcode ganz unten <<
Ich habe dieses Container-Control nahezu fertig, erstelle es und ziehe es aus dem Werkzeugkasten auf eine neue Form.
Dabei tritt ein Fehler auf.
Datei: "Application.Designer"
Methode: "OnCreateMainForm()" bei deren einzigen Codezeile: "Me.MainForm = Global.WindowsApplication1.Form1"
Meldung:
So sieht die "Form1.Designer"-Datei aus:
Durch Zufall fand ich heraus: Füge ich in die Datei folgende Codezeile ein, so geht es!
Nun die Frage:
Wie kann ich dafür sorgen,
1. dass es ohne die eben genannte Codezeile geht
oder
2. dass die eben genannte Codezeile autom. eingefügt wird?
Folgend der Quellcode des Container-Controls (gekürzt, da Post sonst zu lang. Kompletter Quellcode des Containers im Anahng)
CtlPropertyContainer.vb (nur Konstruktor)
CtlPropertyContainer.Designer
ich habe mir ein Usercontrol (einen Container) erstellt, welches später diverse andere Usercontrols beinhalten soll.
Sodass ich nachher nur Befehle benutze wie "container.AddTextbox" oder "container.AddDateField"
>> Quellcode ganz unten <<
Ich habe dieses Container-Control nahezu fertig, erstelle es und ziehe es aus dem Werkzeugkasten auf eine neue Form.
Dabei tritt ein Fehler auf.
Datei: "Application.Designer"
Methode: "OnCreateMainForm()" bei deren einzigen Codezeile: "Me.MainForm = Global.WindowsApplication1.Form1"
Meldung:
Eine Ausnahme (erste Chance) des Typs "System.InvalidOperationException" ist in WindowsApplication1.exe aufgetreten.
Zusätzliche Informationen: Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt..
So sieht die "Form1.Designer"-Datei aus:
Quellcode
- <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
- Partial Class Form1
- Inherits System.Windows.Forms.Form
- 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
- <System.Diagnostics.DebuggerNonUserCode()> _
- Protected Overrides Sub Dispose(ByVal disposing As Boolean)
- Try
- If disposing AndAlso components IsNot Nothing Then
- components.Dispose()
- End If
- Finally
- MyBase.Dispose(disposing)
- End Try
- End Sub
- 'Wird vom Windows Form-Designer benötigt.
- Private components As System.ComponentModel.IContainer
- 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
- 'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
- 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
- <System.Diagnostics.DebuggerStepThrough()> _
- Private Sub InitializeComponent()
- Me.SuspendLayout()
- '
- 'CtlPropertyContainer1
- '
- Me.CtlPropertyContainer1.BackColor = System.Drawing.Color.White
- Me.CtlPropertyContainer1.DefaultLabelWidth = 80
- Me.CtlPropertyContainer1.EventsEnabled = True
- Me.CtlPropertyContainer1.IsEnabled = True
- Me.CtlPropertyContainer1.IsPaint = True
- Me.CtlPropertyContainer1.Location = New System.Drawing.Point(6, 19)
- Me.CtlPropertyContainer1.MoveControls = True
- Me.CtlPropertyContainer1.Name = "CtlPropertyContainer1"
- Me.CtlPropertyContainer1.ScreenUpdate = True
- Me.CtlPropertyContainer1.Size = New System.Drawing.Size(145, 155)
- Me.CtlPropertyContainer1.TabIndex = 0
- '
- 'Form1
- '
- Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
- Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.ClientSize = New System.Drawing.Size(284, 262)
- Me.Controls.Add(Me.CtlPropertyContainer1)
- Me.Name = "Form1"
- Me.Text = "Form1"
- Me.ResumeLayout(False)
- End Sub
- Friend WithEvents CtlPropertyContainer1 As PropertyContainer.CtlPropertyContainer
- End Class
Durch Zufall fand ich heraus: Füge ich in die Datei folgende Codezeile ein, so geht es!
Nun die Frage:
Wie kann ich dafür sorgen,
1. dass es ohne die eben genannte Codezeile geht
oder
2. dass die eben genannte Codezeile autom. eingefügt wird?
Folgend der Quellcode des Container-Controls (gekürzt, da Post sonst zu lang. Kompletter Quellcode des Containers im Anahng)
CtlPropertyContainer.vb (nur Konstruktor)
CtlPropertyContainer.Designer
Quellcode
- <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
- Partial Class CtlPropertyContainer
- Inherits System.Windows.Forms.UserControl
- 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
- <System.Diagnostics.DebuggerNonUserCode()> _
- Protected Overrides Sub Dispose(ByVal disposing As Boolean)
- Try
- If disposing AndAlso components IsNot Nothing Then
- components.Dispose()
- End If
- Finally
- MyBase.Dispose(disposing)
- End Try
- End Sub
- 'Wird vom Windows Form-Designer benötigt.
- Private components As System.ComponentModel.IContainer
- 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
- 'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
- 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
- <System.Diagnostics.DebuggerStepThrough()> _
- Private Sub InitializeComponent()
- Me.PictureBox1 = New System.Windows.Forms.PictureBox()
- Me.VScrollBar1 = New System.Windows.Forms.VScrollBar()
- CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
- Me.SuspendLayout()
- '
- 'PictureBox1
- '
- Me.PictureBox1.Location = New System.Drawing.Point(0, 0)
- Me.PictureBox1.Name = "PictureBox1"
- Me.PictureBox1.Size = New System.Drawing.Size(252, 84)
- Me.PictureBox1.TabIndex = 0
- Me.PictureBox1.TabStop = False
- '
- 'VScrollBar1
- '
- Me.VScrollBar1.Location = New System.Drawing.Point(254, 0)
- Me.VScrollBar1.Name = "VScrollBar1"
- Me.VScrollBar1.Size = New System.Drawing.Size(17, 85)
- Me.VScrollBar1.TabIndex = 2
- '
- 'CtlPropertyContainer
- '
- Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
- Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.Controls.Add(Me.VScrollBar1)
- Me.Controls.Add(Me.PictureBox1)
- Me.Name = "CtlPropertyContainer"
- Me.Size = New System.Drawing.Size(280, 91)
- CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
- Me.ResumeLayout(False)
- End Sub
- Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
- Friend WithEvents VScrollBar1 As System.Windows.Forms.VScrollBar
- End Class