Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,549

    [C#] Allargare colonne ListView ad aumento della Width

    salve a tutti
    ho impostato la larghezza come ancoraggio della listview
    il risultato è che essa si allarga, ma non le colonne

    ora a pensarci non mi viene in mente un modo per allargare le colonne in proporzione alla width della listview in confronto a come erano prima di andare in full screen

    grazie
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Potresti implementare tu il ricalcolo della larghezza proporzionale intercettando l'evento di Resize sul controllo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,549
    eh ci stavo pensando
    poi mi sono scontrato con la logica

    ogni colonna ha dimensioni diverse
    dovrei quindi mantenermi , tipo nel TAG la dimensione iniziale e aumentare in % rispetto alla width della listview :-/
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Quote Originariamente inviata da Kahm Visualizza il messaggio
    ogni colonna ha dimensioni diverse
    dovrei quindi mantenermi , tipo nel TAG la dimensione iniziale e aumentare in % rispetto alla width della listview :-/
    Era sottointeso. Purtroppo dirai.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2011
    residenza
    Arezzo
    Messaggi
    194
    Chiaramente devi fare dei controlli sul fattore di incremento o decremento del Resize, poi moltiplicare la larghezza di ogni colonna per quel fattore.
    Per esempio: da larghezza 100 passi a 120, quindi la larghezza è aumentata del 20%, il fattore sarà 1,2.
    Viceversa da 100 passi a 70, la larghezza è diminuita del 30%, il fattore sarà 0,7
    Riccardo Sadocchi
    Microsoft MCP C#

  6. #6
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,549

    ridimensionare colonne in proporzione a listview

    ho una listview
    la quale ha degli anchor nella form, quando la listview si allarga vorrei allargare anche le colonne e restringerle in proprozione

    ho già creato del codice
    codice:
    private int originalwidtlistView1 = 0;//per ridimensionare le colonneListview
     
           private void Form1_Load(object sender, EventArgs e)
           {            
               //salvo orignale form
               originalwidtlistView1 = listView1.Width;
               
           }
     
           private void Form1_Resize(object sender, EventArgs e)
           {
               listView1.SuspendLayout();
               Decimal fattore = 0;
     
               fattore = Decimal.Divide(listView1.Width, originalwidtlistView1); 
               foreach (ColumnHeader column in listView1.Columns)
               {
                   Decimal w =column.Width * fattore;
                   column.Width = int.Parse(Decimal.Round(w, 0).ToString());
               }
     
               originalwidtlistView1 = listView1.Width;//risalvo 
               listView1.ResumeLayout();        }
    funziona anche piuttosto bene, purtroppo essendo che il fattore deve essere decimal visto che la form può allargarsi o stringersi quindi può assumere valori oltre che (1,2,3) anche di (0.1,0.5)
    e il width è un tipo int ecco che ho dovuto fare un ROUND il quale dopo qualche volta che allargo e stringo sfalza tutto

    consigli per far rimanere uguali a prima anche dopo vari tentativi?
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Quote Originariamente inviata da Kahm Visualizza il messaggio
    ho una listview la quale ha degli anchor nella form, quando la listview si allarga vorrei allargare anche le colonne e restringerle in proprozione
    C'era già una discussione aperta sullo stesso problema: ho unito i due thread.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.