20. maj 2005 - 18:42Der er
12 kommentarer og 1 løsning
C# Oprette controlls i hovedfil fra klasse
Jeg har en klasse hvor andre klasser så nedarver fra. Den klasse der nedarver skal have nogen egenskaber ind, men det er ikke de samme egenskaber i de forskellige klasser(derfor nedarvning). Jeg vil gerne ha at jeg i klassen har en metode der laver de tekstfelter osv som jeg skal bruge inde i filen. Så jeg fx har en placeholder1 i min hovedfil og min klasse indeholder metoden: createPropertiesInput(){ TextBox UserTextBox = new TextBox(); UserTextBox.ID = "UserTextBox"; UserTextBox.Columns = 50; PlaceHolder1.Controls.Add(UserTextBox); } men hvordan fortæller jeg den at den skal oprette den i hoved filen? og er der en bedre måde at lave sådan noget på? Sidste ting. Hvad med formateringen af elementerne, så de står pænt?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Jeg har en abstrakt klasse, som jeg nedarver fra. Kan det så gøres på samme måde? Jeg har lidt problemer med at compile klassen:
namespace Modules { using System;
public class EditText : Module { public EditText(String streng) : base(streng){ }
public void createPropertiesInput(){ TextBox TekstBox = new TextBox(); TekstBox.ID = "User"; TekstBox.Columns = 50;
} } } Det lyder som om jeg mangler at inkludere et eller andet:
EditText.cs(12,10): error CS0246: The type or namespace name 'TextBox' could not be found (are you missing a using directive or an assembly reference?)
EditText------------------------------------------------ namespace Modules { using System; public class EditText : Module { public EditText(String streng) : base(streng){ }
public void createPropertiesInput(){ TextBox TekstBox = new TextBox(); TekstBox.ID = "User"; TekstBox.Columns = 50; base.myPlaceHolder.Controls.Add(TekstBox);
} } }
Jeg vil således gerne ha bundet Tekstfelterne til myPlaceHolder i den første fil
men... hvor i alverden ser du at myPlaceHolder blvier ærkleret? Det sker jo hverken i Module-klassen eller i EditText-klassen, men på din aspx-side. Dvs. at eneste måde du kan få fat i den placeholder i EditText er på en eller anden måde at smide en reference ind i den. Det kan evt. gøre sådan her:
Metoden i EditText:
EditText TekstRedigering = new EditText("TekstRedigering"); TekstRedigering.createPropertiesInput(myPlaceHolder);
public void createPropertiesInput(Placeholder plc){ TextBox TekstBox = new TextBox(); TekstBox.ID = "User"; TekstBox.Columns = 50; plc.Controls.Add(TekstBox);
ah fantastisk. Tak, jeg kunne ikke rigtigt finde ud af hvordan jeg fik den erklæret. Ligger du et svar? Hvis man skal lave noget der minder om et layout i det. Er det så ikke htmltable der er det smarteste at bruge?
Tak. Hvis jeg lige må komme med et sidste spørgsmål...?
Hvorfor kan jeg ikke: ArrayList Content = new ArrayList(); TextBox TestBox = new TextBox(); TestBox.ID = "Use"; TestBox.Columns = 10;
Content[0]=TestBox;
... cell.Controls.Add(Content[0]); ... Jeg får en: CS1502: Den overloadede metode, der passer til 'System.Web.UI.ControlCollection.Add(System.Web.UI.Control)', indeholder ugyldige argumenter
det må være fordi jeg gør noget forkert når jeg tilføjer det til arraylist, kan man ikke det?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.