Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Antal kontroller på en Form

Postades av 2003-07-13 17:20:23 - Joakim Abrahamsson, i forum vb.net, Tråden har 18 Kommentarer och lästs av 877 personer

I VB6 tror jag max antalet kontroller på en Form är 256 st.
Hur är det i VB.Net och C# ?


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-13 19:24:21 - Peter Ilis

Vet ej vad som är max men det är fler än 256 (vb.net).

Mvh
Peter Ilis


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-13 20:17:33 - Oskar Johansson

Det borde väl vara i princip obegränsat eller?


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-13 23:58:41 - Johan Normén

Under .Net finns det inga direkta begränsningar ang hur många kontroller du kan ha.
Mkt baseras på din dators resurser. Olika kontroller tar olika mkt resurser, så det gäller att du har koll så din applikation inte rusar iväg...

//Johan N

"This posting is provided "AS IS" with no warranties, and confers no
rights."


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-14 10:00:31 - Roger Alsing

jag har hört att man max kan ha 65535 fönster totalt i windows och kontroller är ju fönster.
dock är ju ett hWnd 4 bytes så det borde ju kunna vara mer.


Roger Johansson
Cornflakes coder and wannabe


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-14 11:48:43 - Oskar Johansson

Låter som ett gamalt windows... Det är ju bara 2 bytes 65535 fönster... Kan nog inte riktigt stämma tror jag... :)


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-14 13:21:48 - Roger Alsing

hwnd har ju alltid varit 4 bytes..


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-14 13:39:15 - Oskar Johansson

Tänkte snarare på att ms har gjort en hel hög med windows och varje windows har blivit av med några av begränsningarna som föregångaren hade... :)


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-16 10:57:01 - Mikael Sand

Kollade lite i hjälpen för att se om det kanske skulle kunna ge ngn ledtråd.
Kontrollerna ligger i en ControlsCollection som implementerar en IList.
En IList håller reda på sitt innehåll i en ArrayList och den har egenskapen Capacity, vilket är den kapacitet som listan har att hålla objekt.
Egenskapen returnerar en Integer så därför kan du troligen max ha 2 147 483 647 vilket är lika med Int32.MaxValue.

//Mikael.NET


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-16 11:17:59 - Roger Alsing

jo precis..

men eftersom varje kontroll har ett hWnd så är ju även begränsningen kopplad till max antal fönster som windows kan öppna..

jag tror mer på att begränsingen sitter i vad windows klarar att visa och inte på hur många objekt man kan stoppa in i controls listan.

//Roger


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-16 11:18:47 - Johan Normén

Det har du rätt i:
<code>
public class ControlCollection : IList, ICollection, IEnumerable, ICloneable {
private ArrayList collection = new ArrayList ();
</code>

Konstigt att man valt en ArryList och inte en snabbare collection hanterare.
Om nu max är 2 147 483 647 så anser jag nästan att det inte finns en gräns, då du troligen kommer ha svårt att komma upp i så många kontroller och speciellt utan att bli av med minne och dator resurser. Är det 4 byte som en kontrol allokerar i minnet? Är det någon som kommer ihåg detta? Hittar inte vart jag läste de. Om det nu är 4 byte så skulle det bli ca 8000 MB. Undar om det kan stämma?

//Johan N


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-16 11:33:50 - Roger Alsing

nej det är inte 4 bytes de allokerar.
det är massor av minne.

det är bara själva hwnd som är 4 bytes.
sedan allokerar fönstret div gdi resurser , minne för var dess wndproc ligger , alla params för fönstret , tex bredd , höjd , z index , position etc etc.
[^i själva windows alltså , inte i .net , .net kontrollerna wrappar sedan mot dessa native fönster]

dessutom så om vi pratar om .net så tar ju själva .net wrapper objekten upp en massa minne oxo.

ps.
de använder INTE en arraylist internt
dekompilera frameworket så ser man att de har en vanlig control[] som de redimmar manuellt..



[edit]
dessa params krävs för att skapa ett fönster:

typedef struct tagCREATESTRUCT {
LPVOID lpCreateParams;
HINSTANCE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCTSTR lpszName;
LPCTSTR lpszClass;
DWORD dwExStyle;
} CREATESTRUCT, *LPCREATESTRUCT;

så det är ju MINST så mycket som allokeras för ett fönster.
sedan har jag alla fönster en hDc , och varje hDc har en penna,font,brush,textfärg,textbgfärg.
och massa massa annat..

[edit]


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-16 16:51:19 - Johan Normén

Tänkte på just hwnd. Sant att det är mera.

"de använder INTE en arraylist internt"
Koden jag klistrade in kommer från CLI:n (källkoden för .net grund komponenter.

//johan N


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-16 21:31:38 - Roger Alsing

kör med anakrino eller reflector på den får du se att implementeringen i riktiga frameworket är en control[]

sedan hur de implementerat det i rotor är en annan sak.

//Roger


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-17 03:20:26 - Johan Normén

Grejen är att en control[] (array) inte är samma som en ControlCollection. det är två skilda saker.

//Johan N


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-17 08:17:25 - Roger Alsing

det jag sa är att controlscollection classen i .net framework (inte ROTOR!)
är implementerad med en intern control[] och inte med en arraylist som du skrev..

kör reflector och kolla så får du se


OBS.

ROTOR är INTE source koden till .net framework , det är en egen version , förvisso med samma klasser , men inte med samma kod...

//Roger



Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-17 12:46:48 - Johan Normén

Hej..

Jo det vet jag, nu tittade jag på CLI:n samt Mono och de såg likadana ut.

Skall ta en djupare titt, bara för nöjes skull. Du har nog helt rätt, konstigt att man inte
gör så under CLI:n samt Mono. Förvisso har man control[] även i CLI:n och Mono priojektet, där indexen plockar controllen ur ArrayListen.

Mvh Johan N


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-17 12:57:44 - Roger Alsing

hämta "reflector" om du inte redan har den.
http://www.aisto.com/roeder/dotnet/

mycket trevlig decompiler.


bläddra till system.windows.forms.control.controlarray

där ser man att det finns en intern control[] samt att indexerarens get del använder sig av den interna control[] variabeln.

//Roger

screenshot:
http://www.sourcecode4free.com/controlcollection.gif


Svara

Sv: Antal kontroller på en Form

Postades av 2003-07-17 14:01:00 - Johan Normén

Tack!
Skall ta hem det. Verkar ju vara ett bra o smidigt program.

Har du kört junit någon gång? Du kanske inte kodar Java?
Finns ialla fall en motsvarighet till .Net nu.

Unit är ett app där du kan göra tester på dina klasser och dess metoder.
Istället för att ex buggtesta dem i en consoleapplication kan man bygga lite testkod till unit, där du säger vad du förväntar dig för svar, m.m. så är det bara att köra denna varje gång du kompilerat om din klass. Riktigt trevligt.

http://nunit.org/default.htm

Ha en skön dag.

Mvh Johan N


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 166
27 952
271 704
1 938
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies