[vb.net] Minimum hoogte form

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • martin149
  • Registratie: Augustus 2009
  • Laatst online: 10-09 08:19
Ik ben bezig met een applicatie in vb.net, maar ik krijg deze niet kleiner dan 36px, ik heb er over gezocht, hier en hier maar geen oplassingen. het was wel mogelijk met vb 2008, maar de 2010 kan ik daarmee niet openen.
iemand een oplossing?

Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

Bij het opgeven van de minHeight wordt ook je titlebar mee gerekend; dus tenzei je formborder.none hebt, wordt het moeilijk om kleiner te gaan.

Width en Height != ClientWidth en ClientHeight (het deel waar je dje controls dropt).

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Een form kleiner dan 36 pixels, heeft dat dan wel nut? Welk probleem probeer je daar mee op te lossen?

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • martin149
  • Registratie: Augustus 2009
  • Laatst online: 10-09 08:19
mijn applicatie is maar 27 pixels hoog, wat bedoel je met "Width en Height != ClientWidth en ClientHeight"?

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

martin149 schreef op maandag 20 september 2010 @ 07:33:
mijn applicatie is maar 27 pixels hoog,
Wat ik met mijn vraag bedoelde: op een formulier dat zo klein is kun je toch amper informatie kwijt? Wat probeer je daarmee te tonen, bijvoorbeeld alleen een sluitknop? Is het dan niet beter om de applicatie in de notification area te zetten?

Verder niet om belerend over te komen hoor, ik was gewoon benieuwd :* Zoals CMG ook al zegt is het zonder border prima mogelijk om een form te maken dat kleiner is dan 36 pixels hoog.
wat bedoel je met "Width en Height != ClientWidth en ClientHeight"?
Daarmee vat hij zijn post samen. De .Width van een Form is niet altijd gelijk aan de .ClientWidth, hetzelfde geldt voor de .Height die niet overeen komt met de .ClientHeight.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • martin149
  • Registratie: Augustus 2009
  • Laatst online: 10-09 08:19
Me.Size = New System.Drawing.ClientSize(227, 27) --> Me.Size = New System.Drawing.Size(227, 27) = hetzelfde
het wil ook via size niet werken is er dan nog een andere oplossing?

Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 16:10
CodeCaster schreef op maandag 20 september 2010 @ 08:49:
[...]

Wat ik met mijn vraag bedoelde: op een formulier dat zo klein is kun je toch amper informatie kwijt? Wat probeer je daarmee te tonen, bijvoorbeeld alleen een sluitknop? Is het dan niet beter om de applicatie in de notification area te zetten?

Verder niet om belerend over te komen hoor, ik was gewoon benieuwd :* Zoals CMG ook al zegt is het zonder border prima mogelijk om een form te maken dat kleiner is dan 36 pixels hoog.


[...]

Daarmee vat hij zijn post samen. De .Width van een Form is niet altijd gelijk aan de .ClientWidth, hetzelfde geldt voor de .Height die niet overeen komt met de .ClientHeight.
Misschien dat dit toevallig zijn applicatie is (klikbaar):

Afbeeldingslocatie: http://seriez.co.cc/images/uploads/radioplayer.png

Dat zou dus nog wel iets kleiner kunnen.

Ik snap trouwens al wat je bedoeld. Als de FormBorderStyle property van je Form op 'Sizable' staat (de standaard waarde) kan je je Form niet kleiner maken dan 36 pixels omdat ook rekening gehouden wordt met een titel balk en een border. Als je de FormBorderStyle property op 'None' zet dan kan je elke willekeurige grootte opgeven. Probeer dat eens.

[ Voor 14% gewijzigd door urk_forever op 20-09-2010 16:21 ]

Hail to the king baby!


Acties:
  • 0 Henk 'm!

Verwijderd

Dan zou je eventueel een custom border en titlebar kunnen maken, dat moet niet zo moeilijk zijn.

Acties:
  • 0 Henk 'm!

  • martin149
  • Registratie: Augustus 2009
  • Laatst online: 10-09 08:19
Afbeeldingslocatie: http://img710.imageshack.us/img710/3306/26115691.png

Bovenste in debug, onderste in designer, zie die lelijke balk

@urk_forever Ja idd het is 'm ;)

[ Voor 11% gewijzigd door martin149 op 20-09-2010 16:47 ]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Die applicatie zou natuurlijk prima als trayicon kunnen: klik erop en kies uit een lijstje radiostations + start/stop optie. Dubbelklik voor start/stop. :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

Ik heb het even getest, maar ik kan het hier reproduceren.

Je moet even in je _Load event van je Form dit doen:

code:
1
            Me.Height = 27


Dit is een bugje schijnbaar. Ik heb hier iig een werkend form @ 27px.

[oh ja!]
Als je geen zin hebt om zelf de hele tijd de hoogte op deze manier op te lossen, dan kun je wat je nu in je form hebt om toveren in een composit control en dan bij het .Load event Me.Height = MijnCompositControl.Height, als je dan wat aanpast zal hij zich iig altijd aanpassen aan de juiste hoogte. Je kan ook het zwarte gedeelte wat je nu gebruikt als bron voor je Height gebruiken bedenk ik net... kijk maar... het is iig beter dan fixed je height te zetten.
[/oh ja!]

Voor de gene die het zelf ook willen zien (wel even zorgen dat je form in de Designer 240x27 Size heeft:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Klein_Scherm_Demo
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
            this.Click += new EventHandler(frmMain_Click);
            this.Paint += new PaintEventHandler(frmMain_Paint);
            this.Invalidated += new InvalidateEventHandler(frmMain_Invalidated);
        }
        void frmMain_Paint(object sender, PaintEventArgs e)
        {
            ReDraw();
        }
        void frmMain_Invalidated(object sender, InvalidateEventArgs e)
        {
            ReDraw();
        }
        void frmMain_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void frmMain_Load(object sender, EventArgs e)
        {
            this.Height = 27;
        }
        void ReDraw()
        {
            Graphics GFX = this.CreateGraphics();
            GFX.FillRectangle(Brushes.Black, new Rectangle(0, 0, 240, 27));
            GFX.DrawString("U C?", this.Font, Brushes.White, 2, 2);
        }
    }
}


Als je de bug wilt zien, moet je this.Height = 27; even wegcommenten. Wellicht kun je het nog duidelijker maken door nog een FillRectangle te doen op 0,27,240,50 in een andere kleur (nu grijs, valt beetje weg tegen de IDE).

[ Voor 105% gewijzigd door CMG op 20-09-2010 17:25 . Reden: C# -> VB.NET ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • martin149
  • Registratie: Augustus 2009
  • Laatst online: 10-09 08:19
CMG schreef op maandag 20 september 2010 @ 17:16:
Ik heb het even getest, maar ik kan het hier reproduceren.

Je moet even in je _Load event van je Form dit doen:

code:
1
            Me.Height = 27


Dit is een bugje schijnbaar. Ik heb hier iig een werkend form @ 27px.

(...)
Yes, it did the trick ;) :)

Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

Graag gedaan :)

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • martin149
  • Registratie: Augustus 2009
  • Laatst online: 10-09 08:19
Ik zal hem binnenkort vrijgeven, maar ik ben nog met de webinterface bezig ;)
Pagina: 1