webForumDet fria alternativet

Iconer i combobox?

.NETur .NET

24 svar · 505 visningar · startad av saw · sida 2 av 2

Frågan, av saw

Kan manpå någotvis lägga in iconer i en combobox? :q

Läs frågan i sin helhet →
Medlem sedan juni 20022 599 inlägg
#21

Den försvann så fort som jag kompilerade koden.

Jo, jag har också märkt att VS.NET har tendenser att ibland utan anledning ta bort kod inne i InitializeComponent. Du måste se till att:

this.Controls.AddRange(new System.Windows.Forms.Control[] {this.dinListBox});

finns med om du vill se listboxen i designläge och ha tillgång till eventsen.

Eventuellt får du upprepa hela proceduren ovan (ta då först bort alla referenser i koden till dinListBox). Jag vet inte hur jag gör men jag får den faktiskt att stanna kvar hela tiden numera. Det är nog en övningssak.

hur skulle man gå till väga om man ville göra detta till en user controll

Bifogar en hafsig skiss som har en property: ImageList och en metod: SetItem
Den funkar om du gör så här:

this.userControl11.ImageList=imageList1;
this.userControl11.SetItem("Image 1",1);

Jag har däremot inte lagt till några events som tex SelectedIndexChanged så den är nästan oanvändbar om du inte bygger vidare på den själv.

Medlem sedan mars 20011 880 inlägg
#22

Du är en kämpe :-)

Men var skall :
this.Controls.AddRange(new System.Windows.Forms.Control[] {this.dinListBox});
in??

Under private void InitializeComponent() ?

Medlem sedan juni 20022 599 inlägg
#23

Hos mig ligger den strax innan:

this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);

Obs: Om du har flera kontroller så ska de vara med i samma anrop tex:

this.Controls.AddRange(new System.Windows.Forms.Control[] {
						this.label1,
						this.button1,
						this.userControl11,
						this.dinListBox});

Jag förresten själv bäddat in hela koden i OnDrawItem i GListBox i ett try-catch block som för att slippa felmeddelandet i designläget. Eventuellt så hjälper det mot att kontrollen försvinner, jag vet inte.

protected override void OnDrawItem(System.Windows.Forms.DrawItemEventArgs e)
{
	try
	{
		//All tidigare kod här.
	}
	catch{}
	}
}
Medlem sedan mars 20011 880 inlägg
#24

Det är tydligen inte min dag(vecka).
Jag får inte fram den i designläget, men vad värre är, jag får den inte att svara mot ett click.
(du ser ovan hur jag har försökt).

Under alla förhållanden så har du varit en enorm klippa, och jag vill tacka dig för allt som du har ställt upp med.

Medlem sedan juni 20022 599 inlägg
#25

Inga problem. Som sagt, städa upp lite i din kod, öva lite på förfarandet ovan (gärna i ett separat projekt), gör en full compile innan du switchar tillbaka till design-läge. Efter ett tag så funkar det och kontrollen stannar kvar där man lagt den. Jag lovar.

253 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
125 ms — hämta forumlista (db)
117 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)