Couleur damier et image.ico ou .bmp

Résolu
Partouchefrancis Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

je fais un prog pour faire un jeu de dames
ci dessous le code et l'image de l'exe

bien que je mette le backcolor sur black et sur white je n'obtiens que cette image très pâle
comment faire pour avoir un blanc net et un noir net

chose curieuse si j'inverse le cas.backcolor et que je mets le Black dans le premier if et le white dans le elseif j'obtiens un noir plus foncé
mais cela ne me convient pas car il faut que le premier carré en haut à gauche soit noir
bizarre quand même

de plus je mets des images dans mon imagelist qui proviennent d'images ico
initialement les images étaient en 32*32 et cela donne le résultat que vous voyez ci dessous

si je les supprime de l'image list que je les agrandi dans paint et que je les enregistre en bmp 256 couleur et que je les mets dans l'image list , quand j'exécute c'est toujours les anciennes tailles qui apparaissent alors que j'ai bien enregistre tout dans visual studio
quelq'un peut il m'aider pour ces deux questions

Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        Dim i As Integer
        For i = 0 To 63
            Dim Cas As New PictureBox
            Cas.Name = i
            Cas.Size = New Size(40, 40)
            Dim ligne As Integer = Int(i / 8)
            Dim col As Integer = i - ligne * 8

            Cas.Top = ligne * 40
            Cas.Left = col * 40

            If i Mod 2 = 0 Xor (ligne Mod 2) = 0 Then
                Cas.BackColor = Color.White
            ElseIf i Mod 2 <> 0 Xor (ligne Mod 2) <> 0 Then

                Cas.BackColor = Color.Black
            End If
            If ligne = 1 Then
                Cas.Image = ImageList1.Images(0)
            ElseIf ligne = 6 Then
                Cas.Image = ImageList1.Images(1)
            End If
            Controls.Add(Cas)

        Next



    End Sub

11 réponses

  1. Utilisateur anonyme
     
    Bonjour

    j'en déduis que finalement tu n'as pas décidé de reprendre un cours qui commence du début...

    A la place de noir, peux tu mettre rouge, jaune, vert ou bleu bref n'importe quelle couleur et poster le résultat?
    0
  2. Partouchefrancis Messages postés 116 Date d'inscription   Statut Membre Dernière intervention  
     
    j'ai changé de couleur et cela ne change rien par contre si j'interchange le backcolor dans les deux branches du if cela marche mais un damier de dames commence toujours par une case noire et cette différence me parait farfelue
    j'écoute tes conseils
    je finis le cours de Darmangeat et j'ai commencé à lire celui de Tahé
    le fait de commencer par les règles de l'algorithme me parait plus rébarbatif
    mais je ne me laisse pas impressionné ; j'ai le temps je suis retraité je fais cela pour le plaisir



    0
  3. Utilisateur anonyme
     
    Ok, donc mon hypothèse n'était pas la bonne.
    Il existe une propriété des forms qui permet de rendre une couleur transparente. J'ai pensé qu'en bidouillant tu avais configuré le noir...

    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Partouchefrancis Messages postés 116 Date d'inscription   Statut Membre Dernière intervention  
     
    désolé mais je viens de faire le pas à pas détaillé avec les 64 passages dans la boucle mais je ne vois rien qui explique l'affichage fade délavé des noirs
    peux tu m'expliquer si toi tu as trouvé
    cordialement
    0
  6. Utilisateur anonyme
     
    Est tu rentré dans ce if?
                ElseIf i Mod 2 <> 0 Xor (ligne Mod 2) <> 0 Then
    
                    Cas.BackColor = Color.Black
                End If

    0
    1. Utilisateur anonyme
       
      Petite astuce, tu mets un point d'arrêt sur cette ligne
      Cas.BackColor = Color.Black
      et tu lances normalement, si ça rentre dans le if, ça fera la pause sur le point d'arrêt
      0
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour a tout les 2

    Comme ceci :

    Option Strict On
    Public Class Form1
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim i As Integer
            For i = 0 To 63
                Dim Cas As New PictureBox
                Cas.Name = CStr(i)
                Cas.Size = New Size(40, 40)
                Dim ligne As Integer = CInt(Int(i / 8))
                Dim col As Integer = i - ligne * 8
    
                Cas.Top = ligne * 40
                Cas.Left = col * 40
    
                If i Mod 2 = 0 Xor (ligne Mod 2) = 0 Then
                    Cas.BackColor = Color.White
                Else
                    Cas.BackColor = Color.Black
                End If
                Controls.Add(Cas)
            Next
        End Sub
    End Class
    

    0
  8. Partouchefrancis Messages postés 116 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci
    J’ai trouvé tard hier soir en supprimant elseif et la suite par else tout seul
    C’est en voyant par le déboggage que la couleur affichée n’était ni black ni white mais la même compostion que le fond de la form alors qu’un black et white devait être 255,255,255, ou 0,0,0
    Mais étant daltonien ,ce que je prenais pour un noir délavé était en fait la couleur du fond de la form
    Encore merci
    Cordialement
    0
  9. Utilisateur anonyme
     
    Ha, je te pris de m'excuser, je pensais sincèrement, que tu avais vu que les cases étaient transparentes.

    0
  10. Partouchefrancis Messages postés 116 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci encore tu m’as été bien utile
    0
  11. Utilisateur anonyme
     
    Mais si j'avais su je t'aurais dit tout de suite qu'on voyant le fond.

    Je cherchais une raison à la transparence, en partant du principe que c'était un fait acquis.
    0