2017-06-08 2 views
0
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace MiniPaint 
{ 
    public partial class Form1 : Form 
    { 
     Graphics g; 
     Pen p = new Pen(Color.Black, 1); 
     Point sp = new Point(0, 0); 
     Point ep = new Point(0, 0); 
     int k = 0; 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void panel1_Paint(object sender, PaintEventArgs e) 
     { 

     } 

     private void red_Click(object sender, EventArgs e) 
     { 
      p.Color = red.BackColor; 
      default1.BackColor = red.BackColor; 
     } 

     private void green_Click(object sender, EventArgs e) 
     { 
      p.Color = green.BackColor; 
      default1.BackColor = green.BackColor; 
     } 

     private void blue_Click(object sender, EventArgs e) 
     { 
      p.Color = blue.BackColor; 
      default1.BackColor = blue.BackColor; 
     } 

     private void Form1_MouseDown(object sender, MouseEventArgs e) 
     { 
      sp = e.Location; 
      if (e.Button == MouseButtons.Left); 
      k = 1; 

     } 

     private void Form1_MouseUp(object sender, MouseEventArgs e) 
     { 
      k = 0; 

     } 

     private void Form1_MouseMove(object sender, MouseEventArgs e) 
     { 
      if (k == 1) 
      { 
       ep = e.Location; 
       g = this.CreateGraphics(); 
       g.DrawLine(p, sp, ep); 
      } 

      sp = ep; 

     } 

     private void del1_Click(object sender, EventArgs e) 
     { 
      g.Clear(Color.White); 

     } 

     private void yellow_Click(object sender, EventArgs e) 
     { 
      p.Color = yellow.BackColor; 
      default1.BackColor = yellow.BackColor; 
     } 

     private void purple_Click(object sender, EventArgs e) 
     { 
      p.Color = purple.BackColor; 
      default1.BackColor = purple.BackColor; 
     } 

     private void brown_Click(object sender, EventArgs e) 
     { 
      p.Color = brown.BackColor; 
      default1.BackColor = brown.BackColor; 
     } 

     private void black_Click(object sender, EventArgs e) 
     { 
      p.Color = black.BackColor; 
      default1.BackColor = black.BackColor; 
     } 

     private void nud1_ValueChanged(object sender, EventArgs e) 
     { 





     } 

     private void white_Click(object sender, EventArgs e) 
     { 
      p.Color = white.BackColor; 
      default1.BackColor = white.BackColor; 
     } 
    } 
} 

J'ai presque terminé mon code de minipaint en C#. Je voulais ajouter une chose à cela et c'est que je peux changer l'épaisseur (largeur) de la ligne que je vais dessiner via la boîte numericupadown et j'essaye de le faire fonctionner pendant plus d'une heure. Quelqu'un peut-il m'aider avec s'il vous plaît et est-il un moyen simple de le faire? (nud1 est la zone de mise à jour numérique)Numericupdown box line width

Répondre

0

Lors d'un changement de valeur numérique, modifiez l'épaisseur du stylet que vous utilisez. Je vous recommande de stocker la couleur actuelle dans une variable que vous pouvez attribuer à votre stylo. la valeur a changé d'événement lorsque vous l'avez réinitialisée.

Cette MSDN link affiche des détails sur la classe Pen à partir de System.Drawing.

p = new Pen(Color, (float)nud1.Value); 
+0

Je l'ai fait et im obtenir cette erreur maintenant: CS0077 \t L'opérateur as doit être utilisé avec un type de référence ou type Nullable (« int » est un type de valeur non annulable) – Dvenee

+0

Retirez le int de la paramètres. Je crois que la valeur est déjà un int, je ne sais pas pourquoi je l'ai mis. – lxxtacoxxl

+0

Et maintenant j'ai cette erreur: Argument 2: impossible de convertir 'decimal' en 'float' – Dvenee