J'ai un formulaire Win avec deux colonnes et je voulais avoir la largeur de la 1ère colonne 2/3 de la taille de la taille ListView et la deuxième colonne 1/3. Je voulais être en mesure de remplir le ListView avec les 2 colonnes et être en mesure de réduire et de développer pour laisser de la place pour une barre de défilement verticale si les éléments ListView passe sous le bas de la boîte. Je suis venu avec ce code, mais cela seulement prendra effet lorsque la barre de défilement est là, et même alors, il élargit légèrement les colonnes de sorte qu'une barre de défilement horizontale est créée que je ne veux pas. Toute aide est très appréciée.Taille de colonne ListView
private void AddColumn()
{
listView1.View = View.Details;
listView1.Columns.Add("Item");
listView1.Columns.Add("Date Added");
int itemColumnWidth = listView1.Width - SystemInformation.VerticalScrollBarWidth;
listView1.Columns[0].Width = itemColumnWidth/3 * 2;
listView1.Columns[1].Width = itemColumnWidth/3;
}
Cette méthode fixe fonctionnera-t-elle bien si l'écran est réglé sur un DPI différent? C'est à dire. si les bordures sont beaucoup plus grandes que 2 pixels ... Une méthode plus sûre pourrait être de trouver un moyen d'exclure les bordures en fonction des paramètres système actuels au lieu de supposer des constantes. –
Merci pour vos commentaires, je pense que je vais donner une réponse à James –
Au lieu d'utiliser listView1.Width vous devriez utiliser listView1.ClientSize.Width. Ensuite, vous n'avez pas besoin de 4 pixels supplémentaires. Fonctionne parfaitement, en ajoutant 1 pixel à la largeur calculée ajoute la barre de défilement horizontale de sorte qu'il est juste sur la cible. – Anlo