none
Прошу помочь с решением проблемы. RRS feed

  • Вопрос

  • Всем привет!
    Недавно я решил сделать программу для перелистывания фотографии кнопками, как в программе "Просмотр фотографий Windows".
    Но написав код, у меня застревает на 2 картинке, а у меня всего 31 картинка.
    Решил спросить на форуме, в чем моя проблема. И мне дали еще этот дополнительный код:
    pictureBox1.Image = collectionImage.First();
    Но у меня выходит такая ошибка:

    Ошибка-CS1955-Невызываемый член "LinkedList<Bitmap>.First" не может использоваться как метод.

    Сказали убрать скобки, убрал. Но появилась другая ошибка:

    Ошибка-CS0029-Не удается неявно преобразовать тип "System.Collections.Generic.LinkedL istNode<System.Drawing.Bitmap>" в "System.Drawing.Image".

    Спросил что дальше делать. Не отвечал на том форуме никто. Может кто-то пожалуйста подскажет, в чем ошибка? Убрав код, у меня происходит застревание на второй картинке, как я написал выше.

    using Какой-то проект; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Media; using System.Text; using System.Windows.Forms; using WMPLib; using System.Collections; using System.Threading; namespace Какой-то проект { public partial class Form1 : Form { LinkedList<Bitmap> collectionImage = new LinkedList<Bitmap>(); public Form1() { InitializeComponent(); string[] filePaths = Directory.GetFiles(@"WORKFOLDER\2013", "*.jpg"); foreach (var file in filePaths) collectionImage.AddFirst(new Bitmap(file));

                pictureBox1.Image = collectionImage.First(); } LinkedListNode<Bitmap> node; public object MB_OK { get; private set; } public object NULL { get; private set; } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Простое сообщение", "Информация о приложении", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } private void button8_Click(object sender, EventArgs e) { MessageBox.Show("Ошибка.", "КРИТИЧЕСКАЯ ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error); } private void button2_Click(object sender, EventArgs e) { button9.Visible = true; button10.Visible = true; button11.Visible = true; pictureBox1.Enabled = true; pictureBox1.Visible = true; } private void button9_Click(object sender, EventArgs e) { button9.Visible = false; pictureBox1.Enabled = false; pictureBox1.Visible = false; button10.Visible = false; button11.Visible = false; } private void button3_Click(object sender, EventArgs e) { button9.Visible = true; } private void button4_Click(object sender, EventArgs e) { button9.Visible = true; } private void button5_Click(object sender, EventArgs e) { button9.Visible = true; } private void button6_Click(object sender, EventArgs e) { button9.Visible = true; } private void button7_Click(object sender, EventArgs e) { button9.Visible = true; } private void button10_Click(object sender, EventArgs e) { for (node = collectionImage.First; node != null; node = node.Next) pictureBox1.Image = node.Value; } private void button11_Click(object sender, EventArgs e) { for (node = collectionImage.Last; node != null; node = node.Previous) pictureBox1.Image = node.Value; } } }



    • Изменено lolCreeper0 24 июля 2018 г. 10:08
    24 июля 2018 г. 10:07

Ответы

  • Добрый день.

    1. В вопрос прикладывайте только тот код, который относится к проблеме, сейчас куча кода с изменением доступности компонентов, к вашей проблеме отношения не имеет.

    2. На форму кинул PictureBox и две кнопки, вот так все работает:

    public partial class Form1 : Form
    {
        LinkedList<Bitmap> collectionImage = new LinkedList<Bitmap>();
        LinkedListNode<Bitmap> node;
        public Form1()
        {
            InitializeComponent();
            string[] filePaths = Directory.GetFiles(@"WORKFOLDER\2013", "*.jpg");
            foreach (var file in filePaths)
                collectionImage.AddFirst(new Bitmap(file));
            node = collectionImage.First;
            ShowCurrentImage();
        }  
    
        private void button1_Click(object sender, EventArgs e)
        {
            if (node != collectionImage.First)
            {
                node = node.Previous;
            }
            ShowCurrentImage();
        }
    
        private void button2_Click(object sender, EventArgs e)
        {
            if (node != collectionImage.Last)
            {
                node = node.Next;
            }
            ShowCurrentImage();
        }
    
        private void ShowCurrentImage()
        {
            pictureBox1.Image = node.Value;
        }
    }

    24 июля 2018 г. 12:12
    Отвечающий