Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[C#] Checkbox maken at runtime

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een programma aan het maken die foto's van een camera of usb stick of kaartlezer inlaadt, en ze vervolgens kan uploaden. Nu heb ik bij de foto's inladen knop en functie gemaakt die de map uitleest en filtert op .jpg, en dan laat ik checkboxjes maken. Alleen hier loop ik vast. Ik gooi ze in een panel, ipv een checkedlistbox, want daar kwam ik niet uit. Maar nu, het kwam niet ten goede om alle checkboxes dezelfde naam te geven. Dus wat ik wil is óf dezelfde naam als de foto, of checkBox1, checkBox2, etc. Deze moeten dus dynamisch/at runtime gemaakt worden.

De code die ik nu had was:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DirectoryInfo di = new DirectoryInfo(this.drive + "\\DCIM");
FileInfo[] rgFiles = di.GetFiles("*.jpg");
foreach (FileInfo fi in rgFiles)
{
      this.fileName = fi.Name;
      CheckBox checkBox = new CheckBox();
      checkBox.Text = fi.Name;
      checkBox.Click += new EventHandler(checkBox_Click);
      panel1.Controls.Add(checkBox);
      //panel1.Controls.Add(new LiteralControl("<br>"));

      button3.Enabled = true;
      button4.Enabled = true;
}


Daarnaast zien jullie ook de gecommente regel, waar ik dus probeer een witregel te krijgen zodat de checkbox netjes eronder komt, dit werkt waarschijnlijk alleen in ASP.NET, dus daarom is de volgende vraag hoe krijg ik deze mooi op de volgende regel? Met location van de checkbox misschien?
Ik had al eerder een vraag gesteld zoals dit, alleen is het antwoord daarvan niet van toepassing bij dit probleem geloof ik.

[ Voor 4% gewijzigd door Verwijderd op 12-07-2007 17:25 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:48
<br> is HTML code, dus ja ... dat werkt enkel in iets waar HTML geparsed wordt ja...
Wat je kan doen, is iedere keer de positie van je checkbox zetten natuurlijk (de X zal ws altijd hetzelfde blijven, de Y is dan je startpositie + ( aantal checkboxes * ( hoogte checkbox + tussenruimte)).

En je denkt dat dit simpeler is dan te werken met een CheckListBox oid ? :?

https://fgheysels.github.io/


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 30-11 19:45

TeeDee

CQB 241

- CheckBox.Id of iets dergelijks?
- Wat ging er dan niet met CheckBoxList?
- Qua positioning kan je dit met een loop (je foreach waarschijnlijk) vrij gemakkelijk doen door de X / Y position te verhogen met een n-aantal pixels.

Wat heb je trouwens allemaal al gedaan?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:56
Begrijp ik goed dat je met WinForms bezig bent? Dan gaat een LiteralControl natuurlijk nooit werken...
Ik denk dat het makkelijkst is om je panel te veranderen in een FlowLayoutPanel, en dan een beetje met de properties daarvan spelen om het allemaal naar je zin te krijgen.

Edit: @hierboven: waarom zelf prutsen met x en y coordinaten als het ook automatisch kan?

[ Voor 15% gewijzigd door sig69 op 12-07-2007 17:31 ]

Roomba E5 te koop


Verwijderd

Topicstarter
Om een bepaalde reden wel ja, ik wilde bij elke checkbox een event toevoegen, alleen dat werkte niet, en ik dacht dat dat wel hierbij kon. Anders nog suggesties? Als een checkedlistbox alsnog handiger is dan kan ik zo terug gaan. :P

@ hierboven: een flowlayoutpanel sorteert de controls automatisch dus? Mits de FlowDirection op TopDown staat lijkt me. :) Het enige wat ik nu nog moet is een goede manier om checkboxes at runtime te plaatsen met de goeie name.

Edit: Het werkt al! Alleen nu moet nog het goede plaatje in de preview geshowt worden, kan ik meer dan de standaard parameters meegeven aan een event?

[ Voor 47% gewijzigd door Verwijderd op 12-07-2007 17:45 ]


  • BM
  • Registratie: September 2001
  • Laatst online: 18:43

BM

Moderator Spielerij
Verwijderd schreef op donderdag 12 juli 2007 @ 17:31:
Edit: Het werkt al! Alleen nu moet nog het goede plaatje in de preview geshowt worden, kan ik meer dan de standaard parameters meegeven aan een event?
Je kunt je eigen EventArgs class schrijven, maar om die te laten werken zul je ook wel een custom event moeten maken.

[ Voor 37% gewijzigd door BM op 12-07-2007 17:58 ]

Xbox
Even the dark has a silver lining | I'm all you can imagine times infinity, times three


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 14:29

sopsop

[v] [;,,;] [v]

Verwijderd schreef op donderdag 12 juli 2007 @ 17:31:
[..] Edit: Het werkt al! Alleen nu moet nog het goede plaatje in de preview geshowt worden, kan ik meer dan de standaard parameters meegeven aan een event?
Je zou de 'tag' property van de checkbox daarvoor kunnen gebruiken. Die is er ook voor bedoeld (''User-defined data associated with the object)

[ Voor 38% gewijzigd door sopsop op 13-07-2007 08:37 ]


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:56
Idd, je hoeft helemaal geen extra parameters aan het event door te geven. Zoiets volstaat:
C#:
1
2
3
4
5
6
7
8
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    CheckBox cb = sender as CheckBox;
    string pic = cb.Tag as string;

    // Show picture preview
    // ....
}

Ik denk dat we je nu wel weer aardig op de rails hebben :Y)

[ Voor 9% gewijzigd door sig69 op 13-07-2007 09:25 ]

Roomba E5 te koop


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 30-11 19:45

TeeDee

CQB 241

sig69 schreef op donderdag 12 juli 2007 @ 17:29:
Edit: @hierboven: waarom zelf prutsen met x en y coordinaten als het ook automatisch kan?
offtopic:
omdat niet iedereen op de hoogte is van FlowLayoutPanels :). Nu wel... zal straks gelijk eens gaan rommelen...

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Heel erg bedankt, het werkt. :) Toch heb ik weer een vraag, waarmee ik uiteindelijk wel ver genoeg ben gekomen; ik wil niet meteen dat de checkbox gecheckt wordt, maar dat er eerst een grijs selectie randje om de tekst komt. Daarna bij een tweede klik of direct op het vakje zelf dat 'ie gecheckt wordt. Is dit mogelijk of niet?

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 14:29

sopsop

[v] [;,,;] [v]

Verwijderd schreef op zondag 15 juli 2007 @ 19:00:
Heel erg bedankt, het werkt. :) Toch heb ik weer een vraag, waarmee ik uiteindelijk wel ver genoeg ben gekomen; ik wil niet meteen dat de checkbox gecheckt wordt, maar dat er eerst een grijs selectie randje om de tekst komt. Daarna bij een tweede klik of direct op het vakje zelf dat 'ie gecheckt wordt. Is dit mogelijk of niet?
Dit lijken mij nou uitstekende zaken om eens zelf uit te proberen met een checkbox in een proefprojectje. En mocht het niet lukken, dan hier vragen met een beschrijving van wat er niet lukt en wat je al gedaan hebt.

Als alles wordt voorgekauwd leer je er ook niks van.

Verwijderd

Topicstarter
Ik heb voldoende kennis om erachter te komen zelf eerst te proberen en dan pas hier aan te kloppen hoor :) Ik zal nog 1 ding proberen en dan een uitgebreide beschrijving plaatsen met wat ik wil bereiken en wat de obstakels zijn.
Pagina: 1