pictureBox1我正在上窗口的應用程序的應用程序構成。它被稱爲artgenerator。繪圖更然後1個圖形與button_Click +混合起來圖形
在本申請的含義是,每次我點擊例如按鈕「橢圓」的按鈕,一個橢圓將窗體上繪製。現在一切都很順利,直到我在彼此之後按下所有三個按鈕。然後,應用程序將所有數字合併爲1.這不是我想要的。同樣在繪製了1個橢圓,正方形或直線後,再次按下相同的按鈕,圖形消失並出現一個新的橢圓。如何解決這些問題?
我會送我的代碼樓下:
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 Kunstgenerator
{
public partial class Form1 : Form
{
bool TekenCirkel = false;
bool TekenRechthoek = false;
bool TekenLijn = false;
public Form1()
{
InitializeComponent();
}
private void button4_Click(object sender, EventArgs e)
{
pictureBox1.Hide();
}
private void btnCirkel_Click(object sender, EventArgs e)
{
TekenCirkel = true;
pictureBox1.Show();
pictureBox1.Refresh();
}
private void btnRechthoek_Click(object sender, EventArgs e)
{
TekenRechthoek = true;
pictureBox1.Show();
pictureBox1.Refresh();
}
private void btnLijn_Click(object sender, EventArgs e)
{
TekenLijn = true;
pictureBox1.Refresh();
pictureBox1.Show();
}
private void pictureBox1_Resize(object sender, EventArgs e)
{
Refresh();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
// Er wordt een Random aangemaakt.
Random random = new Random();
// Breedte en hoogte wordt aangemaakt en verwezen naar zichzelf.
// Hier wordt de Random gebruikt om een willekeurige hoogte en breedte te maken.
int width = random.Next(this.Width);
int height = random.Next(this.Height);
// Primaire kleuren Rood, Geel, Blauw worden hier aangemaakt.
// Door de Random is de kleuren willekeurig. Er wordt een kleur uitgekozen tussen 1 en 255
int r = random.Next(255);
int g = random.Next(255);
int b = random.Next(255);
if (TekenRechthoek)
{
Graphics graphics = e.Graphics;
if (random.Next(2) == 0)
{
graphics.FillRectangle(new SolidBrush(Color.FromArgb(r, g, b)), width, height, width, height);
}
else
{
graphics.DrawRectangle(new Pen(new SolidBrush(Color.FromArgb(r, g, b))), width, height, width, height);
}
}
if (TekenLijn)
{
Graphics graphics = e.Graphics;
graphics.DrawLine(new Pen(new SolidBrush(Color.FromArgb(r, g, b))), width, height, width, 100);
}
if (TekenCirkel)
{
Graphics graphics = e.Graphics;
if (random.Next(2) == 0)
{
graphics.FillEllipse(new SolidBrush(Color.FromArgb(r, g, b)), width, height, width, height);
}
else
{
graphics.DrawEllipse(new Pen(new SolidBrush(Color.FromArgb(r, g, b))), width, height, width, height);
}
}
}
}
}
這是所有的代碼。我在下面還畫了一張圖片,向大家展示我的意思是結合圖形。
另一件事。因爲我的尺寸和圖形位置都是隨機的,所以它們都會從屏幕上消失(半分)。這是可以修復的還是這個隨機性的一部分?
在此先感謝
順便說一下我在編程初學者
'那不是我want' ** **做你想要什麼?如果不知道這一點,很難提供解決方案。 – Plutonix
您正在設置新的但不重置舊的圖形類型。另外:閱讀Enum !! – TaW
考慮使用帶'switch()'語句的'enum'而不是 – ja72