Comment créer une ligne cliquable

ami7 Messages postés 99 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 29 juin 2011 - 12 avril 2011 à 23:02
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 - 13 avril 2011 à 14:16
Bonjour,

SVP , j'ai arrivé à trouver un code ci dessous qui permet de créer une ligne cliquable
je cherche comment créer une ligne cliquable mais cette dernière sera dessiner après un Click sur un bouton 'ajouter ligne'

le code c'est :

public Form1()
{
InitializeComponent();
myButtonObject myButton = new myButtonObject();
EventHandler myHandler = new EventHandler(myButton_Click);
myButton.Click += myHandler;
myButton.Location = new System.Drawing.Point(20, 20);
myButton.Size = new System.Drawing.Size(101, 101);
this.Controls.Add(myButton);
}
public class myButtonObject : UserControl
{
// Draw the new button.
protected override void OnPaint(PaintEventArgs e)
{
Point point9 = new Point(10, 30);
Point point10 = new Point(30, 10);
Graphics graphics = e.Graphics;
Pen myPen = new Pen(Color.Black);
// Draw the button in the form of a circle
graphics.DrawLine(myPen, point9, point10);


myPen.Dispose();
}
}

private void myButton_Click(object sender, EventArgs e)
{
MessageBox.Show("Click");
}
}


merci

3 réponses

LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
13 avril 2011 à 13:04
bonjour,

tu ajoutes dynamiquement une ligne cliquable dans le constructeur de Form1.
Il te suffit d'exécuter le même code lors d'un clique sur ta ligne :

private void myButton_Click( object sender, EventArgs e )
{
    myButtonObject newButton = new myButtonObject();
    newButton.Click += new EventHandler( myButton_Click );
    newButton.Location = new System.Drawing.Point(30, 30); 
    newButton.Size = new System.Drawing.Size(101, 101); 
    this.Controls.Add( newButton );
}


Lors d'un clique sur la première ligne tu vas donc créer une seconde ligne. Et lors d'un clique sur ta deuxième ligne tu vas créer une troisième ligne... etc etc...

Pourrais-tu me dire quel est ton but ? Je pourrais peut-être te conseiller ?
0
ami7 Messages postés 99 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 29 juin 2011 1
13 avril 2011 à 13:32
mon but c'est de créer une graphe cliquable contenant des sommets reliés entre eux par des lignes.
concernant les sommets j'ai crée comme des boutons ensuite j'ai trouvé le code précédent
qui permet de dessiner une ligne cliquable mais ce code affiche directement une ligne
mais moi je cherche que la ligne sera dessiné après un clique sur un bouton "ajouter ligne" car je vais changé aussi le code pour qu'il permet de dessiner plusieurs lignes
et que l'utilisateur de l'application entre les coordonnées convenable de cette lignes pour faire la liaison entre les sommets
0
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
13 avril 2011 à 14:16
Dans ce cas je te conseille de créer un UserControl dans lequel tu dessineras l'état de ton graphique !
En fait ton contrôle contiendra une liste de "Point" et une liste de "Ligne" et se dessinera en fonction de ces listes.
De cette manière tu pourras permettre à l'utilisateur d'ajouter un point et/ou une ligne à la souris (en cliquant dans le graphique)

Si tu veux je pourrais te coder un exemple simple pour que tu voies le résultat !
0
Rejoignez-nous