Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C# - Kreslení a Refresh

Dobrý večer, pánové,

měl bych dotaz ohledně programování v C#. Dostal jsem za úkol ze školy udělat program, který nakreslí na plochu nějaký obrázek a ten pak bude pomocí kláves(případně buttonů) posouván po ploše. Zadání jsem si trochu rozšířil a tady nastal problém. Vytvořil jsem radio buttony, kterými vyberu téma, které chci vykreslit. Vykreslení se podaří, ale potom, když chci posouvat objekt po ploše, tak Refresh() jenom ukáže prázdnou plochu. Je to tím, že tam mám if, který reaguje na označení toho radio buttonu a ono to potom, když pracuji v jiném prostředí už neví, co tam vlastně bylo. Dále přikládám zdrojový kód:

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

namespace WFA_Kopecky
{
    public partial class frmKresleni : Form
    {
        public frmKresleni()
        {
            InitializeComponent();
        }

        int xPosition = 0;
        int yPosition = 0;
        int width = 0;
        int height = 0; 

        private void btnVykreslit_Click(object sender, EventArgs e)
        {
            

            if (rdbVesmir.Checked)
            {
                width = 213;
                height = 161;
                Graphics kp = this.pnlKresliciPlocha.CreateGraphics();
                kp.Clear(SystemColors.Control);
                Font myFont = new System.Drawing.Font("Palatino Linotype", 40, FontStyle.Bold);
                Brush TextBrush = new SolidBrush(Color.Black);
                kp.DrawString("Vesmír", myFont, TextBrush, 310, 5);
                kp.DrawImage(WFA_Kopecky.Properties.Resources.ufo, xPosition, yPosition, width, height);
                
            }

            else
            {
                if (rdbAkvarium.Checked)
                {
                    width = 175;
                    height = 162;
                    Graphics kp = this.pnlKresliciPlocha.CreateGraphics();
                    kp.Clear(SystemColors.Control);
                    Font myFont = new System.Drawing.Font("Palatino Linotype", 40, FontStyle.Bold);
                    Brush TextBrush = new SolidBrush(Color.Black);
                    kp.DrawString("Akvárium", myFont, TextBrush, 310, 5);
                    kp.DrawImage(WFA_Kopecky.Properties.Resources.fish, xPosition, yPosition, width, height);

                }

                else
                {
                    if (rdbOstrov.Checked)
                    {
                        width = 168;
                        height = 106;
                        Graphics kp = this.pnlKresliciPlocha.CreateGraphics();
                        kp.Clear(SystemColors.Control);
                        Font myFont = new System.Drawing.Font("Palatino Linotype", 40, FontStyle.Bold);
                        Brush TextBrush = new SolidBrush(Color.Black);
                        kp.DrawString("Ostrov", myFont, TextBrush, 310, 5);
                        kp.DrawImage(WFA_Kopecky.Properties.Resources.palm, xPosition, yPosition, width, height);

                    }

                    else
                    {
                        MessageBox.Show("Chyba!", "Nebylo vybráno téma kresby!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    }
                }
            }


        }

        private void poziceXplus_Click(object sender, EventArgs e)
        {
            xPosition = xPosition + 10;
            Refresh();
        }

Předem děkuji za všechny Vaše reakce.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Žeby SSPŠ p.uč Brabcová ? :D Zrovna v tuhle chvíli máme totiž úplně stejné zadání poslední
Smiky 26.11.2012 17:35
Smiky

Zpět do poradny Odpovědět na původní otázku Nahoru