[Visual Studio 2010 (C#)] Waarom doet mijn picturebox heel raar?

  • Onderwerp starter Onderwerp starter Yvar
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Yvar

Gebruiker
Lid geworden
30 jan 2012
Berichten
8
Hallo, ik ben een kleine image editor aan het maken waarbij je je foto erin kan draggen en het daarna laat zien op die coordinaten.
Maar telkens al ik de panel laat painten met de form te resizen krijg ik een gigantisch rode streep erdoorheen? :(

Hier is mijn code/project

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WAll
{
    public partial class Form1 : Form
    {

        public static Bitmap[,] allBitmaps;

        public static int mouseX = 0;
        public static int mouseY = 0;

        Graphics drawScreen;


        public Form1()
        {
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            allBitmaps = new Bitmap[watermarkImage.Width, watermarkImage.Height];
            drawScreen = watermarkImage.CreateGraphics();
        }

        public void AddItem(Bitmap bmp)
        {
            allBitmaps[mouseX, mouseY] = bmp;
            watermarkImage.Refresh();
        }

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Copy;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }

        private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            string[] data = (string[])e.Data.GetData(DataFormats.FileDrop);
            AddItem((Bitmap)Image.FromFile(data[0]));
        }

        private void watermarkImage_MouseMove(object sender, MouseEventArgs e)
        {
            mouseX = e.X;
            mouseY = e.Y;
        }

        private void watermarkImage_Paint(object sender, PaintEventArgs e)
        {
         // drawScreen.Clear(watermarkImage.BackColor);  

            for (int i = 0; i < watermarkImage.Width; i += 1)
            {
                for (int j = 0; j < watermarkImage.Height; j += 1)
                {
                    if (allBitmaps[i, j] != null)
                    {
                        drawScreen.DrawImage(allBitmaps[i, j], i, j);
                    }
                }
            }
        }

        private void Form1_ResizeEnd(object sender, EventArgs e)
        {
            Bitmap[,] newArray = new Bitmap[watermarkImage.Width, watermarkImage.Height];
            Array.Copy(allBitmaps, newArray, allBitmaps.Length);
            allBitmaps = newArray;
        }
    }
}

En natuurlijk het probleem:

5vy8g6.jpg


Ik hoop dat iemand me kan helpen, alvast heel erg bedankt !
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan