Zmienna globalna? C#

Mógłbyś to zrobić w oparciu o to co napisałem wyżej (to na prawdę nie jest nic trudnego). No ale rozumiem, że chodzi o czas. Dobra dvd i dvd2 to dwa różne katalogi na płytce?

tak

Dodane 26.05.2011 (Cz) 20:31

Tak przy okazji, gdybym miał czas to bawił bym się z tym, tak długo, jak trzeba, ale TEMPUS FUGIT :wink:

public partial class Form1 : Form

{

    private List imagesFolders;

    private HashSet imagesExtensions;

    private List images;

    private int currentImageIndex;

    private int currentFolderIndex;


    public Form1()

    {

        InitializeComponent();

    }


    private void Form1_Load(object sender, EventArgs e)

    {

        string exeDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

        imagesFolders = new List()

        {

            Path.Combine(exeDirectory,"dvd"),

            Path.Combine(exeDirectory,"dvd2")

        };


        imagesExtensions = new HashSet() 

        { 

            "png",

            "jpg" 

        };


        images = new List();

    }


    private void button1_Click(object sender, EventArgs e)

    {

        currentFolderIndex = 0;

        images.Clear();

        images = GetImages(imagesFolders[currentFolderIndex], imagesExtensions);

        currentImageIndex = 0;


        pictureBox1.Image = images[currentImageIndex];

    }


    private void button4_Click(object sender, EventArgs e)

    {

        currentFolderIndex = imagesFolders.Count - 1;

        images.Clear();

        images = GetImages(imagesFolders[currentFolderIndex], imagesExtensions);

        currentImageIndex = images.Count - 1;


        pictureBox1.Image = images[currentImageIndex];

    }


    private void button3_Click(object sender, EventArgs e)

    {

        if (currentImageIndex != 0)

            currentImageIndex--;

        else if (currentFolderIndex != 0)

        {

            currentFolderIndex--;

            images.Clear();

            images = GetImages(imagesFolders[currentFolderIndex], imagesExtensions);

            currentImageIndex = images.Count - 1;

        }


        pictureBox1.Image = images[currentImageIndex];

    }


    private void button2_Click(object sender, EventArgs e)

    {

        if (currentImageIndex != (images.Count - 1))

            currentImageIndex++;

        else if (currentFolderIndex != (imagesFolders.Count - 1))

        {

            currentFolderIndex++;

            images.Clear();

            images = GetImages(imagesFolders[currentFolderIndex], imagesExtensions);

            currentImageIndex = 0;

        }


        pictureBox1.Image = images[currentImageIndex];

    }


    private List GetImages(string directoryPath, HashSet imagesExtensions)

    {

        List result = new List();


        string[] fileNames = Directory.GetFiles(directoryPath);

        if (fileNames != null && fileNames.Length > 0)

        {

            foreach (string fileName in fileNames)

            {

                if (imagesExtensions.Contains(Path.GetExtension(fileName).Replace(".", "").ToLower()))

                {

                    result.Add((Image)(new Bitmap(fileName)));

                }

            }

        }


        return result;

    }

}

To jest kod bez tego pokazu slajdów i bez obsługi wyjątków. Jakby coś było nie tak to pisz. Tych folderów możesz sobie natworzyć ile tam będziesz chciał. Przyjrzyj się po prostu co robię w zdarzeniu Load i w razie czego, gdy będziesz potrzebował dodatkowe foldery to je tam dodaj. Na razie sprawdź dla tych dwóch folderów i zobacz, czy zadziała.

Dzięki. Spróbujemy :smiley:

Dodane 26.05.2011 (Cz) 21:31

Index out of range :frowning:

Hm. U mnie ten kod działa. Sprawdź w debuggerze, czy ścieżki folderów są poprawne (kolekcja imagesFolders). Jeśli są to sprawdź, czy w każdym z tych folderów masz zdjęcia. Nie zdążyłem dodać kodu, który zabezpiecza przed tym, że w danym folderze nie będzie zdjęć (będziesz to musiał zrobić sam). Jak coś to będę za około 2h.

exeDirectory “D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\bin\Debug” string

Dodane 26.05.2011 (Cz) 21:52

Out of memory.

Co było powodem wyjątku “Index out of range”? I kiedy pojawia się wyjątek “Out of memory.”? W trakcie wczytywania zawartości pierwszego folderu, czy też w trakcie wczytywania zawartości drugiego folderu (już w czasie działania programu)? Jeśli w trakcie wczytywanie tego pierwszego folderu to znaczy, że wciąż jest za duży. Jeśli w trakcie wczytywania drugiego folderu to najprawdopodobniej garbage collector jeszcze nie zwolnił pamięci po poprzedniej kolekcji. W takiej sytuacji będziesz musiał poczytać jak wymusić, aby to zrobił w danej chwili (ewentualnie jak zrobić, żeby wstrzymać działanie programu dopóki tego nie zrobi).

Ewentualnie możesz powrócić do opcji, o której pisałem wcześniej (która IMO jest tutaj najlepsza). Czyli wczytywać do pamięci tylko jeden obrazek. Skoro użytkownik nie może dodawać i usuwać zdjęć z tego folderu to możesz to zrobić bardzo szybko. Po prostu załaduj do pamięci ścieżki wszystkich obrazków z tego jednego dużego folderu. Wówczas currentIndex będzie służył do przemieszczenia się po kolekcji tych ścieżek. W poszczególnych zdarzeniach Click będziesz po prostu ładował odpowiedni obrazek dla ściezki wskazywanej przez currentIndex. Proste? Proste.

Właśnie wszedłem, żeby napisać, że to na słabszych kompach nie da rady :smiley: Wracamy do koncepcji 1-obrazek. Ale nie wiem jak się za to zabrać.

Każdy obrazek ma inną nazwę.

Co z tego? A co ja napisałem

BTW nie odpisałeś mi na moje pytanie z przedostatniego posta.

Wybacz. Tamto rozwiązałem, wystarczyło podzielić na mniejsze foldery. Ale potem strasznie muliło.

Dodane 26.05.2011 (Cz) 22:49

Ok ścieżki załaduje, ale jak potem dostać się do tego zdjęcia? StreamReader ?

Tak samo jak było to robione do tej pory w metodzie GetImages, czyli (Image)new Bitmap(filePath).

Mi chodziło o to pytanie

BTW Ale się tasiemiec zrobił z tego topica :stuck_out_tongue:

Dodane 27.05.2011 (Pt) 2:51

Poniżej zamieszczam najnowszą wersję kodu (o to mi chodziło w jednym z moich poprzednich postów):

MyImage.cs

using System;

using System.Drawing;

using System.IO;


namespace ImageViewer

{

    public class MyImage

    {

        public MyImage(string filePath)

        {

            FilePath = filePath;

            FileExtension = Util.GetFileExtension(filePath);

            Image = null;

        }


        public MyImage(string filePath, string fileExtension)

        {

            FilePath = filePath;

            FileExtension = fileExtension;

            Image = null;

        }


        public string FilePath { get; private set; }

        public string FileExtension { get; private set; }

        public Image Image { get; private set; }


        public void Load()

        {

            if (File.Exists(FilePath))

                Image = (Image)(new Bitmap(FilePath));

        }


        public void Clear()

        {

            if (Image != null)

            {

                Image.Dispose();

                Image = null;

            }

        }


        public override bool Equals(object obj)

        {

            return FilePath.ToLower().CompareTo(((MyImage)obj).FilePath.ToLower()) == 0;

        }

    }

}

MyImageCollection.cs

using System;

using System.Collections.Generic;

using System.Drawing;

using System.IO;


namespace ImageViewer

{

    public class MyImageCollection

    {

        public MyImageCollection(string directoryPath, HashSet fileExtensions)

        {

            DirectoryPath = directoryPath;

            FileExtensions = fileExtensions;

            Images = new List();

            ResetIndex();

        }


        public string DirectoryPath { get; private set; }

        public HashSet FileExtensions { get; private set; }

        public List Images { get; private set; }

        private int CurrentIndex { get; set; }

        public MyImage Current

        {

            get

            {

                MyImage result = null;

                if (Images.Count > 0)

                {

                    result = Images[CurrentIndex];

                }

                return result;

            }

        }

        public MyImage First

        {

            get

            {

                MyImage result = null;

                if (Images.Count > 0)

                {

                    CurrentIndex = 0;

                    result = Images[CurrentIndex];

                }

                return result;

            }

        }

        public MyImage Last

        {

            get

            {

                MyImage result = null;

                if (Images.Count > 0)

                {

                    CurrentIndex = Images.Count - 1;

                    result = Images[CurrentIndex];

                }

                return result;

            }

        }

        public MyImage Previous

        {

            get

            {

                MyImage result = null;

                if (Images.Count > 0)

                {

                    if (CurrentIndex > 0)

                        CurrentIndex--;

                    result = Images[CurrentIndex];

                }

                return result;

            }

        }

        public MyImage Next

        {

            get

            {

                MyImage result = null;

                if (Images.Count > 0)

                {

                    if (CurrentIndex < (Images.Count - 1))

                        CurrentIndex++;

                    result = Images[CurrentIndex];

                }

                return result;

            }

        }


        public void Load()

        {

            Load(false);

        }


        public void Load(bool onlyFilePaths)

        {

            string[] filePaths = Directory.Exists(DirectoryPath) ? Directory.GetFiles(DirectoryPath) : null;

            if (filePaths != null && filePaths.Length > 0)

            {

                string fileExtension = string.Empty;

                MyImage myImage = null;

                foreach (string filePath in filePaths)

                {

                    fileExtension = Util.GetFileExtension(filePath);

                    if (FileExtensions.Contains(fileExtension))

                    {

                        myImage = new MyImage(filePath, fileExtension);

                        Images.Add(myImage);


                        if (!onlyFilePaths)

                            myImage.Load();

                    }

                }

            }

        }


        public void Clear()

        {

            for (int i = 0; i < Images.Count; i++)

            {

                Images[i].Clear();

            }


            Images.Clear();

            Images = new List();

            CurrentIndex = 0;

        }


        public void Refresh()

        {

            Refresh(false);

        }


        public void Refresh(bool onlyFilePaths)

        {

            MyImage currentImage = null;

            if (Images.Count > 0)

                currentImage = Images[CurrentIndex];


            Images = new List();

            Load(onlyFilePaths);


            if (currentImage != null)

            {

                ResetIndex();

                for (int i = 0; i < Images.Count; i++)

                {

                    if (Images[i].Equals(currentImage))

                    {

                        CurrentIndex = i;

                        break;

                    }

                }

            }

        }


        public void ResetIndex()

        {

            CurrentIndex = 0;

        }


        public bool DecreaseIndex()

        {

            bool result = false;

            if (Images.Count > 0)

            {

                if (CurrentIndex > 0)

                {

                    CurrentIndex--;

                    result = true;

                }

            }

            return result;

        }


        public bool IncreaseIndex()

        {

            bool result = false;

            if (Images.Count > 0)

            {

                if (CurrentIndex < (Images.Count - 1))

                {

                    CurrentIndex++;

                    result = true;

                }

            }

            return result;

        }

    }

}

Util.cs

using System;

using System.Collections.Generic;

using System.IO;

using System.Reflection;


namespace ImageViewer

{

    public static class Util

    {

        public static string GetFileExtension(string filePath)

        {

            return File.Exists(filePath) ? Path.GetExtension(filePath).Replace(".", "").ToLower() : string.Empty;

        }


        public static HashSet GetImageFileExtensions()

        {

            //TODO: Add missing image extensions

            return new HashSet()

            {

                "png",

                "jpg"

            };

        }


        public static string GetExecutableDirectoryPath()

        {

            return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

        }

    }

}

ImageViewerForm.cs

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;

using System.IO;

using System.Threading;


namespace ImageViewer

{

    public partial class ImageViewerForm : Form

    {

        MyImageCollection images = null;


        public ImageViewerForm()

        {

            InitializeComponent();

        }


        private void imageViewerForm_Load(object sender, EventArgs e)

        {

            images = new MyImageCollection(Path.Combine(Util.GetExecutableDirectoryPath(), "Images"), Util.GetImageFileExtensions());

            images.Load(true);


            firstButton_Click(null, null);

        }


        private void firstButton_Click(object sender, EventArgs e)

        {

            Clear();

            Display(images.First);

        }


        private void previousButton_Click(object sender, EventArgs e)

        {

            Clear();

            Display(images.Previous);

        }


        private void nextButton_Click(object sender, EventArgs e)

        {

            Clear();

            Display(images.Next);

        }


        private void lastButton_Click(object sender, EventArgs e)

        {

            Clear();

            Display(images.Last);

        }


        private void Clear()

        {

            images.Current.Clear();

            pictureBox1.Image = null;

        }


        private void Display(MyImage image)

        {

            image.Load();

            pictureBox1.Image = image.Image;

        }


        private void slideShowCheckBox_CheckedChanged(object sender, EventArgs e)

        {

            if (slideShowCheckBox.Checked)

            {

                if (images.Images.Count > 0)

                {

                    firstButton.Enabled = false;

                    previousButton.Enabled = false;

                    nextButton.Enabled = false;

                    lastButton.Enabled = false;


                    backgroundWorker1.RunWorkerAsync();

                }

            }

            else

            {

                if (backgroundWorker1.IsBusy)

                {

                    backgroundWorker1.CancelAsync();

                }

            }

        }


        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

        {

            while (!backgroundWorker1.CancellationPending)

            {

                Display(images.Current);

                Thread.Sleep(5 * 1000);

                Clear();


                if (!images.IncreaseIndex())

                {

                    images.ResetIndex();

                }

            }

        }


        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)

        {

            firstButton.Enabled = true;

            previousButton.Enabled = true;

            nextButton.Enabled = true;

            lastButton.Enabled = true;


            Display(images.Current);

        }

    }

}

Możesz teraz zobaczyć jak bardzo zmniejszyła się ilość kodu w formie i jak od razu łatwiej taki kod się czyta.

EDIT: Wprowadziłem do kodu wywołanie metody Dispose(), bo wciąż był problem ze zwalnianiem pamięci. Teraz jest już OK :slight_smile:

Dzięki, za kod. Wszystko już mam, tylko nie bardzo orientuję się w pobieraniu ścieżek. Nie rozumiem tego #-o

Dodane 27.05.2011 (Pt) 20:05

Coś jest nie tak:

Error	2	The type or namespace name 'MyImageCollection' could not be found (are you missing a using directive or an assembly reference?)	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	16	9	Wanderung Wędrówka Putovani

Error	3	The type or namespace name 'MyImageCollection' could not be found (are you missing a using directive or an assembly reference?)	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	25	26	Wanderung Wędrówka Putovani

Error	6	The name 'slideShowCheckBox' does not exist in the current context	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	69	17	Wanderung Wędrówka Putovani

Error	7	The name 'previousButton' does not exist in the current context	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	74	21	Wanderung Wędrówka Putovani

Error	10	The name 'previousButton' does not exist in the current context	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	108	13	Wanderung Wędrówka Putovani

Error	8	The name 'nextButton' does not exist in the current context	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	75	21	Wanderung Wędrówka Putovani

Error	11	The name 'nextButton' does not exist in the current context	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	109	13	Wanderung Wędrówka Putovani

Error	9	The name 'lastButton' does not exist in the current context	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	76	21	Wanderung Wędrówka Putovani

Error	12	The name 'lastButton' does not exist in the current context	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	110	13	Wanderung Wędrówka Putovani

Message	1	The designer has fixed inconsistent type names in a partial class. The partial class name 'Wanderung_Wędrówka_Putovani.Form1' has been changed to 'ImageViewer.ImageViewerForm'. 0	0	

Error	4	The call is ambiguous between the following methods or properties: 'ImageViewer.MyImage.Load()' and 'ImageViewer.MyImage.Load()'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	63	13	Wanderung Wędrówka Putovani

Error	5	Ambiguity between 'ImageViewer.MyImage.Image' and 'ImageViewer.MyImage.Image'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\ImageViewerForm.cs.cs	64	39	Wanderung Wędrówka Putovani

Error	15	Ambiguity between 'ImageViewer.MyImage.Image' and 'ImageViewer.MyImage.Image'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	13	13	Wanderung Wędrówka Putovani

Error	18	Ambiguity between 'ImageViewer.MyImage.Image' and 'ImageViewer.MyImage.Image'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	20	13	Wanderung Wędrówka Putovani

Error	20	Ambiguity between 'ImageViewer.MyImage.Image' and 'ImageViewer.MyImage.Image'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	30	17	Wanderung Wędrówka Putovani

Error	21	Ambiguity between 'ImageViewer.MyImage.Image' and 'ImageViewer.MyImage.Image'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	35	17	Wanderung Wędrówka Putovani

Error	26	Ambiguity between 'ImageViewer.MyImage.Image' and 'ImageViewer.MyImage.Image'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	13	13	Wanderung Wędrówka Putovani

Error	29	Ambiguity between 'ImageViewer.MyImage.Image' and 'ImageViewer.MyImage.Image'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	20	13	Wanderung Wędrówka Putovani

Error	31	Ambiguity between 'ImageViewer.MyImage.Image' and 'ImageViewer.MyImage.Image'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	30	17	Wanderung Wędrówka Putovani

Error	32	Ambiguity between 'ImageViewer.MyImage.Image' and 'ImageViewer.MyImage.Image'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	35	17	Wanderung Wędrówka Putovani

Error	13	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	11	13	Wanderung Wędrówka Putovani

Error	16	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	18	13	Wanderung Wędrówka Putovani

Error	19	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	29	29	Wanderung Wędrówka Putovani

Error	22	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	44	20	Wanderung Wędrówka Putovani

Error	23	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	44	64	Wanderung Wędrówka Putovani

Error	24	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	11	13	Wanderung Wędrówka Putovani

Error	27	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	18	13	Wanderung Wędrówka Putovani

Error	30	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	29	29	Wanderung Wędrówka Putovani

Error	33	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	44	20	Wanderung Wędrówka Putovani

Error	34	Ambiguity between 'ImageViewer.MyImage.FilePath' and 'ImageViewer.MyImage.FilePath'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	44	64	Wanderung Wędrówka Putovani

Error	14	Ambiguity between 'ImageViewer.MyImage.FileExtension' and 'ImageViewer.MyImage.FileExtension'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	12	13	Wanderung Wędrówka Putovani

Error	17	Ambiguity between 'ImageViewer.MyImage.FileExtension' and 'ImageViewer.MyImage.FileExtension'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImageCollection.cs	19	13	Wanderung Wędrówka Putovani

Error	25	Ambiguity between 'ImageViewer.MyImage.FileExtension' and 'ImageViewer.MyImage.FileExtension'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	12	13	Wanderung Wędrówka Putovani

Error	28	Ambiguity between 'ImageViewer.MyImage.FileExtension' and 'ImageViewer.MyImage.FileExtension'	D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs	19	13	Wanderung Wędrówka Putovani

Dodane 27.05.2011 (Pt) 20:06

Takie jak nazwy buttonów to wiadomo, ale z resztą sobie nie dam rady :expressionless:

Dodane 27.05.2011 (Pt) 20:08

A tego w ogóle nie rozumiem :

Error 19 Ambiguity between ‘ImageViewer.MyImage.FileExtension’ and ‘ImageViewer.MyImage.FileExtension’ D:\Programowanie\Projekty\Wanderung Wędrówka Putovani\Wanderung Wędrówka Putovani\MyImagge.cs 12 13 Wanderung Wędrówka Putovani

:o

Trzymaj po prostu cały projekt: https://rapidshare.com/files/2569618869/ImageViewer.rar. Zobacz co i jak. Problemy mogą wynikać z tego, że Ty w projekcie masz inne przestrzenie nazw. A ja te wszystkie klasy umieściłem w przestrzeni nazw ImageViewer.

Dzięki. Bardzo mi pomogłeś.[*]