Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267

    [C#] Tab disegnati di size più piccola di quanto richiesto

    Ho scritto una routine per windows mobile 5 dove durante l'esecuzione del programma la form viene ridisegnata aggiungendo dei nuovi tab contenenti altri componenti (bottoni e textbox). Il problema è che quando avvio l'evento di creazione dei nuovi tab questi vengono creati ma con una dimensione molto più ppiccola di quanto richiesta e a sua volta anche i componenti vengono ridisegnati di misura più piccola. Posto la funzione delegata a creare i tab, questa viene chiamata ricorsivamente a secondo di quanti tab deve creare:


    codice:
    private void creaTab(Opera op)
            {
                //aggiungo opera alla lista
    
                listaOpere.Items.Add(op);
    
               
                Button video = new Button();
                Button audio = new Button();
                Button back = new Button();
                TextBox descrizione = new TextBox();
    
                TabPage tab2 = new TabPage();
    
    
            
                tab2.SuspendLayout();
                this.deviceTab.SuspendLayout();
                this.tabOpera.SuspendLayout();
                this.tabControl.SuspendLayout();
                this.SuspendLayout();
    
                tab2.BackColor = System.Drawing.SystemColors.GrayText;
                tab2.Location = new System.Drawing.Point(4, 25);
                tab2.Name = op.nome;
                tab2.Size = new System.Drawing.Size(232, 273);
                tab2.Text = op.nome;
    
    
    
    
    
                if (op.pathVideo != "null")
                {
                    // configuro il bottone video
                   
                    video.Font = new System.Drawing.Font("Courier New", 8F, System.Drawing.FontStyle.Bold);
                    video.Text = "scarica video";
                    video.Location = new System.Drawing.Point(7, 139);
                    video.Size = new System.Drawing.Size(98, 26);
                    video.Click += new EventHandler(downloadVideoAudio);
                    video.Tag = op.pathVideo;
                    tab2.Controls.Add(video);
    
                }
                if (op.pathAudio != "null")
                {
                    // configuro il bottone audio
                 
                    audio.Text = "scarica audio";
                    audio.Font = new System.Drawing.Font("Courier New", 8F, System.Drawing.FontStyle.Bold);
                    audio.Location = new System.Drawing.Point(118, 139);
                    audio.Size = new System.Drawing.Size(98, 26);
                    audio.Click += new EventHandler(downloadVideoAudio);
                    audio.Tag = op.pathAudio;
                    tab2.Controls.Add(audio);
    
    
                }
    
    
           
                back.Font = new System.Drawing.Font("Courier New", 8F, System.Drawing.FontStyle.Bold);
                back.Location = new System.Drawing.Point(7, 201);
                back.Name = "button3";
                back.Size = new System.Drawing.Size(209, 26);
                back.TabIndex = 5;
                back.Text = "Back";
                back.Click += new EventHandler(back_clk);
                tab2.Controls.Add(back);
    
    
                
    
                descrizione.BackColor = System.Drawing.SystemColors.GrayText;
                descrizione.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
                descrizione.Font = new System.Drawing.Font("Tahoma", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
                descrizione.Location = new System.Drawing.Point(7, 7);          
                descrizione.Multiline = true;
                descrizione.Name = "textBox1";
                descrizione.ReadOnly = true;
                descrizione.Size = new System.Drawing.Size(209, 121);
                descrizione.TabIndex = 3;
                descrizione.Text = op.descrizione;
                descrizione.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
                descrizione.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
    
                tab2.Controls.Add(descrizione);
    
                //carico immagine
    
                /* PictureBox pictureBox1 = new PictureBox();
                 pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                 pictureBox1.Image = new System.Drawing.Bitmap(op.pathImg);
                 pictureBox1.Location = new System.Drawing.Point(7, 7);
                 pictureBox1.Name = "pictureBox1";
                 pictureBox1.Size = new System.Drawing.Size(226, 119);
    
                 tab2.Controls.Add(pictureBox1);*/
    
                tabControl.SuspendLayout();
                this.SuspendLayout();
    
    
                this.tabControl.Controls.Add(tab2);
    
    
    
    
                this.tabOpera.ResumeLayout(false);
                this.deviceTab.ResumeLayout(false);
                tab2.ResumeLayout(false);
                this.tabControl.ResumeLayout(false);
                this.ResumeLayout(false);
    
    
            }

  2. #2
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    non ho letto tutto il tuo cod ma in genere c'è una proprietà di autosize da gestire (il metodo di resize percentuale, fissa, relativa ecc.) nel componente

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    Originariamente inviato da U235
    non ho letto tutto il tuo cod ma in genere c'è una proprietà di autosize da gestire (il metodo di resize percentuale, fissa, relativa ecc.) nel componente
    resize? il tab di cui ti parlo è nuovo, forse ti riferisci ad un qualche metodo di resize della form? cmq il tab che va aggiunto agli altri nel tabControl non ha caratteristiche diverse da quella degli altri... cmq grazie per la risposta

  4. #4
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Il problema è che quando avvio l'evento di creazione dei nuovi tab questi vengono creati ma con una dimensione molto più ppiccola di quanto richiesta e a sua volta anche i componenti vengono ridisegnati di misura più piccola.
    solo i tab o tutto tabcontrol?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    solo i tab vengono creati, il tabcontrol viene solo chiamato per aggiungere le nueve tabpage al suo interno... infatti nel metodo l'unica azione su tabcontrol è "tabcontro.controls.add(tabPage2);"

  6. #6
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    ok ma se hai dei tab a video avrai anche un tabcontrol mica i tab saranno sparsi! se è cosi allora e il tabcontrol che viene creato piu' piccolo. ma forse non ho capito qualcosa...

    adesso non ho il mobile 5 ma se non ricordo male era molto simile alla programmazione windows ma con delle classi "limitate" (neanche piu di tanto) sarà per quello che non ho capito?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    Originariamente inviato da U235
    ok ma se hai dei tab a video avrai anche un tabcontrol mica i tab saranno sparsi! se è cosi allora e il tabcontrol che viene creato piu' piccolo. ma forse non ho capito qualcosa...

    adesso non ho il mobile 5 ma se non ricordo male era molto simile alla programmazione windows ma con delle classi "limitate" (neanche piu di tanto) sarà per quello che non ho capito?
    Scusami rispondo solo ora perchè sono stato fuori per il week end...
    provo a risponderti con ordine....
    Si è chiaro che ho il tabcontro e ho anche provato a risettare le dimensioni ogni volta che aggiungo un nuovo tab sempre nel metodo che ho linkato ma senza nessuna soluzione. LA programmazione su palmare è proprio come hai detto tu iìdentica nella sintassi ma con clasi "liminate" e per quanto riguarda il tabControl e le tabPage sono praticamente uguali..
    Il problema della programmazione su palmare che le applicazioni non possono essere debuggate quindi se ti funzionano sull'emulatore del pc e poi non girano sul palmare è un pò un casotto... VVoVe:

  8. #8
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da dybart
    Scusami rispondo solo ora perchè sono stato fuori per il week end...
    provo a risponderti con ordine....
    Si è chiaro che ho il tabcontro e ho anche provato a risettare le dimensioni ogni volta che aggiungo un nuovo tab sempre nel metodo che ho linkato ma senza nessuna soluzione. LA programmazione su palmare è proprio come hai detto tu iìdentica nella sintassi ma con clasi "liminate" e per quanto riguarda il tabControl e le tabPage sono praticamente uguali..
    Il problema della programmazione su palmare che le applicazioni non possono essere debuggate quindi se ti funzionano sull'emulatore del pc e poi non girano sul palmare è un pò un casotto... VVoVe:

    beh qui non posso che darti ragione

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    Originariamente inviato da U235
    beh qui non posso che darti ragione
    giusto per dire qualcosa.. non è che viene chiamata male qualche opzione di repaint? Sto spulciando per bene la doc msdn e a quanto pare per aggiungere un nuovo tab (anche in run time) basta chiamare la funzione tabcontrols.add(tabpage) ma il fatto che questa venga disegnata esattamente ad un quarto delle dimensioni fissate mi sembra logico pensare che qualcosa nel core non vada per bene...

  10. #10
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    giusto per dire qualcosa..
    ti riferisci alla mia affermazione? se si scusa

    purtroppo non ho sdk e finirei col dirti castronerie magari

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.