[VB 2005] Dessiner une grille pour une interface

Dessiner une grille pour une interface [VB 2005] - VB/VBA/VBS - Programmation

Marsh Posté le 30-03-2007 à 15:23:44    

J'ai besoin de dessiner une grille 10x10, genre grille de sudoku, ou bataille navale.
J'ai vu pas mal d'exemples sur le net, mais à chaque fois que je regarde le code source, j'ai l'impression que les techniques utilise de déclaration qui sont obsolètes sur VB 2005.
L'un de vous pourrait il m'aider? Je crois qu'il faut que je dessine une picturebox, puis que je trace les lignes dessus, mais je ne parviens pas à les tracer.  
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 30-03-2007 à 15:23:44   

Reply

Marsh Posté le 30-03-2007 à 15:37:16    

 
Voila, de rien :) (exemple en C# enfin c'est la meme chose en VB)
 

Code :
  1. Graphics g = pictureBox.CreateGraphics();
  2. g.DrawLine(new Pen(new SolidBrush(Color.Blue)), new Point(0, 0), new Point(10, 10));



Message édité par Koyomi le 30-03-2007 à 15:37:53
Reply

Marsh Posté le 31-03-2007 à 00:03:08    

Merci beaucoup pour l'aide  :hello:


---------------
Le marketing aussi peut être solidaire. | La passion des p'tites images
Reply

Marsh Posté le 01-04-2007 à 00:55:28    

bonsoir, je débute en VB (2005) et j'ai aussi besoin de dessiner une grille.
malheureusement j'ai essayé ce petit bout de code mais cela ne fonctionne pas.  :(

Reply

Marsh Posté le 01-04-2007 à 14:03:35    

power-user a écrit :

bonsoir, je débute en VB (2005) et j'ai aussi besoin de dessiner une grille.
malheureusement j'ai essayé ce petit bout de code mais cela ne fonctionne pas.  :(


explicite ton "ca en marche pas" stp :o
Ca plante ? ca te donne une erreur ? Il faut plus de détails la  :non:

Reply

Marsh Posté le 01-04-2007 à 14:43:06    

bah en fait, déja on dirait qu'il faudrai que je déclare g.
J'ai 2 erreurs :  
 
- 'Graphics' est un type et ne peut pas être utilisé en tant qu'expression.  
- Le nom 'g' n'est pas déclaré.
 
J'ai remarqué que bizarrement il n'y a pas de propriété CreateGraphics pour PictureBox1 (dans mon cas)
 
(je suis un grand débutant en VB  :D )

Reply

Marsh Posté le 02-04-2007 à 11:50:07    

up

Reply

Marsh Posté le 02-04-2007 à 11:55:58    

montre nous ton code cela ira plus vite :)
 
car ce petit bout de code fonctionne parfaitement, c'est probablement l'utilisation que tu en fait qui est érronée


Message édité par Koyomi le 02-04-2007 à 11:56:32
Reply

Marsh Posté le 02-04-2007 à 12:11:32    

(à priori)
 
Dim g as Graphics
Set g = pictureBox.CreateGraphics()
 
PS : Eviter le VB.NET. Faire du C# à la place. Effectivement, les deux langages sont très proches (mêmes objets, mêmes fonctionnalités, même exécutable généré, etc.) mais la syntaxe est différente. Tu trouveras facilement des exemples en C#, et plus difficilement en VB.NET. En plus, VB.NET n'a rien de compatible avec VB tout court, mise à part une syntaxe voisine. Du coup, tu risques les confusions avec du code VB6, VBS ou VBA.


Message édité par MagicBuzz le 02-04-2007 à 12:13:28
Reply

Marsh Posté le 02-04-2007 à 12:39:08    

bah en fait j'ai simplement repris le code :

 
Citation :

Graphics g = PictureBox1.CreateGraphics())
g.DrawLine(New Pen(New SolidBrush(Color.Blue)), New Point(0, 0), New Point(10, 10))

 

Donc forcément l'utilisation est erronée puisque je sais pas comment l'adapter.  :D
Ah si, j'ai modifié PictureBox en PictureBox1 parce que c'est le nom de l'objet.

 

J'avais pris VB justement parce que je pensais que c'était le plus simple pour débuter. Je vais y réflechir mais ce qui me plait avec VB, c'est qu'on peut "modeler" l'interface très facilement.

 

edit: ah ben si je viens de voir qu'on peut faire de belles interfaces avec C# ou C++... Mais la programmation en VB me parait plus simple.


Message édité par power-user le 02-04-2007 à 12:44:55
Reply

Marsh Posté le 02-04-2007 à 12:39:08   

Reply

Marsh Posté le 02-04-2007 à 14:25:49    

Non, PictureBox1 doit être le nom de ton contrôle PictureBox.
Tu dois créer un contrôle PictureBox dans ton form pour que ça marche.
 
Sinon, le design de l'interface et rigoureusement le même en VB et en C#. C'est le même outil qui permet de développer l'un ou l'autre.
 
Exemple :
http://magicbuzz.multimania.com/files/vs4.png
 
http://magicbuzz.multimania.com/files/vs5.png

Reply

Marsh Posté le 02-04-2007 à 18:45:42    

Evidemment que j'ai un contrôle picturebox sur la form, ce que je voulais dire par là c'est que son nom exact est PictureBox1 et non pas PictureBox, c'est pour ça que j'ai dis que j'avais modifié.  ;)  
 
Sinon, ouais j'hésite vraiment à faire du C# plutôt, mais je crois que c'est pas la même façon de programmer, non?
 
Au pire, si je développe en VB, je pourrai transposer ensuite en C# assez facilement ?

Reply

Marsh Posté le 03-04-2007 à 09:25:39    

autant entre VB6 et C++, il y a un gouffre au niveau façon de programmer, autant, je le répète, entre VB.NET et C#, la différence se résume à la syntaxe légèrement différente, et une ou deux spécifivités, assez rares et non contraignantes.
 
Exemples de spécificités (si je ne me trompe pas ^^) :
 
VB.NET :

Code :
  1. Function PremiereLettreMajuscule(str as string)
  2.     PremiereLettreMajuscule = str.Left(1) & str.SubString(2);
  3.     ' Ici, je peux continuer à faire des traîtements, même si j'ai déjà affecté ma variable de retour
  4. End Function


 
C# :

Code :
  1. void PremiereLettreMajuscule(string str)
  2. {
  3.     return str.Left(1) + str.SubString(1);
  4.     // return arrête la fonction, tout ce qui suivra sera ignoré
  5. }


 
Sinon, effectivement, un même projet peut contenir des fichiers écris en VB.NET, en C#, J# ou autre en même temps. Cela ne pose pas de problème.
Mieux, un classe "partielle", peut être déclarée en partie en VB et l'autre en C#.
 
Donc le passage de l'un à l'autre peut se faire en douceur, tout comme une personne qui ne connait que C# pourra parfaitement maintenir une application écrire en VB


Message édité par MagicBuzz le 03-04-2007 à 09:28:32
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed