Hayer Skrevet 14. november 2007 Del Skrevet 14. november 2007 (endret) Hei! Driver å skriver en DLL for å lage textbokser, labels, etc. Problemet ligger i at jeg gjør f.eks dette: Public Function Form_Add_TextBox(ByVal parent As String, ByVal startx As Integer, ByVal starty As Integer, ByVal width As Integer, ByVal height As Integer) Dim textbox As New Windows.Forms.TextBox() textbox.Left = startx textbox.Top = starty textbox.Width = width textbox.Height = height textbox.Parent = parent textbox.Show() End Function Men debugger stopper på textbox.Parent og sier at stringen ikke kan bli convertert til System.Windows.(noe mer).. hvordan konverterer jeg til det? andre workarounds? Takker for alle hjelp som går i rett retning. edit: vb.net 2005 forresten Endret 14. november 2007 av Hayer Lenke til kommentar
GeirGrusom Skrevet 15. november 2007 Del Skrevet 15. november 2007 (endret) 1. Hvorfor har du satt parent som type string? hvis du sjekker så ser du fort at parent er av typen System.Windows.Forms.Control, og ikke string. 2. dette er feil måte å gjøre det på. Public Class SomeForm Inherits System.Windows.Forms.Form Public Sub New() AddSomeTextBoxes() End Sub Public Function CreateTextBox(ByVal bounds As Rectangle) As System.Windows.Forms.TextBox Dim textbox As New System.Windows.Forms.TextBox() textbox.Location = bounds.Location textbox.Size = bounds.Size Return textbox End Function Public Sub AddSomeTextBoxes() Controls.Add(CreateTextBox(New Rectangle(32, 32, 128, 30)) Controls.Add(CreateTextBox(New Rectangle(32, 54, 128, 30)) End Sub End Class Dette er ikke VB6, og derfor må du tenke objektorientert. Bruk strukturer som Rectangle etc. hvis du kan det, de er ikke noe tregere(avhenger litt av hvordan du gjør det selvsagt), og gjør koden mye enklere i bruk. Endret 15. november 2007 av GeirGrusom Lenke til kommentar
Hayer Skrevet 15. november 2007 Forfatter Del Skrevet 15. november 2007 så du mener jeg skal "tegne" textboxene manuelt? Lenke til kommentar
GeirGrusom Skrevet 17. november 2007 Del Skrevet 17. november 2007 Høh? nei? Du må legge til kontrollene i parent objektet, og parentobjektet er en System.Windows.Forms.Control, ikke en System.String. Bare kikk litt på koden jeg skrev, så forstår du sikkert hva som skjer. Men soørsmålet ditt "Men debugger stopper på textbox.Parent og sier at stringen ikke kan bli convertert til System.Windows.(noe mer).. hvordan konverterer jeg til det? andre workarounds?" Du trenger ingen workaround, siden dette ikke er et problem med .NET, men hvordan du har utformet koden din. Sett parent som System.Windows.Forms.Control istedet for string, og bruk parent.Controls for å legge til underkontroller. Men da kommer du til neste problem: hvordan setter man TextChanged etc. på kontroller runtime? Les om AddHandler funksjonen, AddressOf og delegates på MSDN. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå