Comment créer une ligne cliquable

Signaler
Messages postés
100
Date d'inscription
dimanche 8 août 2010
Statut
Membre
Dernière intervention
29 juin 2011
-
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
-
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

Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
6
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 ?
Messages postés
100
Date d'inscription
dimanche 8 août 2010
Statut
Membre
Dernière intervention
29 juin 2011
1
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
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
6
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 !