Добрый робот идёт на помощь, есть вопрос? Не тяни, да всю суть изложи. ChatGPT

Интересная технология? Нужна ли она нам.

  • Крутая, оставляй пока есть возможность.

    Голосов: 104 94,5%
  • Игрушка на время. Не верю я в эти технологии.

    Голосов: 6 5,5%

  • Всего проголосовало
    110
  • Опрос закрыт .

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
На код
Код:
PictureBox.DragDrop += PictureBox_DragDrop;
                            PictureBox.DragEnter += PictureBox_DragEnter;
                            PictureBox.MouseClick += PictureBox_MouseClick;
                            PictureBox.MouseMove += PictureBox_MouseMove;
                            PictureBox.Paint += PictureBox_Paint;
Возникает ошибка
Код:
Ошибка    CS0103    Имя "PictureBox_DragDrop" не существует в текущем контексте
Ошибка CS0103 указывает на то, что имя "PictureBox_DragDrop" не существует в текущем контексте. Это означает, что либо вы забыли объявить метод "PictureBox_DragDrop", либо его объявление находится в другом месте, недоступном для текущего кода.
Чтобы исправить эту ошибку, убедитесь, что у вас есть объявление метода "PictureBox_DragDrop" с правильными параметрами в том же классе или контексте, где вы устанавливаете обработчики событий. Например, вы можете добавить следующий метод:csharp
Код:
private void PictureBox_DragDrop(object sender, DragEventArgs e)
{
    // Логика обработки события DragDrop для PictureBox
}
Если вы уже объявили этот метод, проверьте, находится ли он в правильном месте и доступен ли он для кода, где вы устанавливаете обработчики событий.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
764
Реакции
2.553
Ra
2.725
@Добрый робот (ChatGPT)
c#
Прочитай мне этот код
Код:
private void PictureBox_DragDrop(object sender, DragEventArgs e)
        {
            var target = (PictureBox)sender;
            if (e.Data.GetDataPresent(typeof(PictureBox)))
            {
                var source = (PictureBox)e.Data.GetData(typeof(PictureBox));
                if (source != target)
                {
                    Console.WriteLine("Do DragDrop from " + source.Name + " to " + target.Name);
                    // You can swap the images out, replace the target image, etc.
                    SwapImages(source, target); // Ошибка    CS0103    Имя "SwapImages" не существует в текущем контексте

                    selected = null;
                    SelectBox(target); // Ошибка    CS0103    Имя "SelectBox" не существует в текущем контексте.
                    return;
                }
            }

        }
И как исправить ошибки которые есть в коде.
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
Прочитай мне этот код
Код:
private void PictureBox_DragDrop(object sender, DragEventArgs e)
        {
            var target = (PictureBox)sender;
            if (e.Data.GetDataPresent(typeof(PictureBox)))
            {
                var source = (PictureBox)e.Data.GetData(typeof(PictureBox));
                if (source != target)
                {
                    Console.WriteLine("Do DragDrop from " + source.Name + " to " + target.Name);
                    // You can swap the images out, replace the target image, etc.
                    SwapImages(source, target); // Ошибка    CS0103    Имя "SwapImages" не существует в текущем контексте

                    selected = null;
                    SelectBox(target); // Ошибка    CS0103    Имя "SelectBox" не существует в текущем контексте.
                    return;
                }
            }

        }
И как исправить ошибки которые есть в коде.
Для исправления ошибок в данном коде, вам необходимо определить методы SwapImages и SelectBox в текущем контексте. Вот исправленный код:csharp
Код:
private void PictureBox_DragDrop(object sender, DragEventArgs e)
{
    var target = (PictureBox)sender;
    if (e.Data.GetDataPresent(typeof(PictureBox)))
    {
        var source = (PictureBox)e.Data.GetData(typeof(PictureBox));
        if (source != target)
        {
            Console.WriteLine("Do DragDrop from " + source.Name + " to " + target.Name);
            // You can swap the images out, replace the target image, etc.
            SwapImages(source, target);
            selected = null;
            SelectBox(target);
            return;
        }
    }
}

private void SwapImages(PictureBox source, PictureBox target)
{
    // Implement the logic to swap images between the source and target PictureBoxes
}

private void SelectBox(PictureBox box)
{
    // Implement the logic to select the specified PictureBox
}
Внесены следующие изменения:
  • Добавлены определения методов SwapImages и SelectBox после метода PictureBox_DragDrop.
  • Теперь метод SwapImages и метод SelectBox должны быть реализованы согласно вашим требованиям.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
764
Реакции
2.553
Ra
2.725
@Добрый робот (ChatGPT)
c#
Прочитай мне этот код
C#:
private void PictureBox_DragDrop(object sender, DragEventArgs e)
        {
            var target = (PictureBox)sender;
            if (e.Data.GetDataPresent(typeof(PictureBox)))
            {
                var source = (PictureBox)e.Data.GetData(typeof(PictureBox));
                if (source != target)
                {
                    Console.WriteLine("Do DragDrop from " + source.Name + " to " + target.Name);
                    // You can swap the images out, replace the target image, etc.
                    SwapImages(source, target);

                    selected = null;
                    SelectBox(target);
                    return;
                }
            }
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
Прочитай мне этот код
C#:
private void PictureBox_DragDrop(object sender, DragEventArgs e)
        {
            var target = (PictureBox)sender;
            if (e.Data.GetDataPresent(typeof(PictureBox)))
            {
                var source = (PictureBox)e.Data.GetData(typeof(PictureBox));
                if (source != target)
                {
                    Console.WriteLine("Do DragDrop from " + source.Name + " to " + target.Name);
                    // You can swap the images out, replace the target image, etc.
                    SwapImages(source, target);

                    selected = null;
                    SelectBox(target);
                    return;
                }
            }
Sure! Here's the code snippet you provided in C#:csharp
Код:
private void PictureBox_DragDrop(object sender, DragEventArgs e)
{
    var target = (PictureBox)sender;
    if (e.Data.GetDataPresent(typeof(PictureBox)))
    {
        var source = (PictureBox)e.Data.GetData(typeof(PictureBox));
        if (source != target)
        {
            Console.WriteLine("Do DragDrop from " + source.Name + " to " + target.Name);
            // You can swap the images out, replace the target image, etc.
            SwapImages(source, target);
            
            selected = null;
            SelectBox(target);
            return;
        }
    }
}
This code defines an event handler method named PictureBox_DragDrop which is triggered when a drag-and-drop operation is performed on a PictureBox object. Here's what the code does:
  • It casts the sender parameter to a PictureBox object and assigns it to the target variable.
  • It checks if the data being dragged is of type PictureBox using the GetDataPresent method of the DragEventArgs object (e). If it is, the code continues; otherwise, it exits the method.
  • It casts the data being dragged to a PictureBox object and assigns it to the source variable.
  • It checks if the source and target are different PictureBox objects. If they are, the code continues; otherwise, it exits the method.
  • It writes a message to the console indicating the drag-and-drop operation from the source PictureBox to the target PictureBox.
  • It calls the SwapImages method passing the source and target PictureBox objects to swap their images or perform other image-related operations.
  • It sets the selected variable to null.
  • It calls the SelectBox method passing the target PictureBox to perform some action on the selected box.
  • It returns from the method.
Note that the code snippet provided is incomplete, so there might be additional code or methods defined outside of this event handler that are not included here.
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
Прочитай мне этот код
C#:
foreach (var box in boxes) box.Invalidate();
Данный код на языке C# использует цикл foreach для перебора элементов в коллекции boxes и вызывает метод Invalidate() для каждого элемента.
foreach является конструкцией цикла, которая позволяет перебирать элементы в коллекции по одному за раз без явного использования индекса. Она автоматически пройдет через все элементы коллекции, начиная с первого и до последнего.
В данном случае, каждый элемент коллекции boxes (вероятно, это массив или список объектов) будет называться box внутри цикла. Для каждого box вызывается метод Invalidate().
Метод Invalidate() вероятно является пользовательским методом, который применяется к каждому элементу коллекции boxes. Он, скорее всего, выполняет какое-то действие, связанное с недействительным состоянием или перерисовкой элемента.
Таким образом, данный код будет вызывать метод Invalidate() для каждого элемента коллекции boxes, чтобы выполнить необходимые действия для недействительного состояния или перерисовки каждого элемента.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
764
Реакции
2.553
Ra
2.725
@Добрый робот (ChatGPT)
c#
есть коллекция picturebox
Код:
Dictionary<string, PictureBox> PictureBoxsDict = new Dictionary<string, PictureBox>();
Как к каждому элементу этой коллекции применить метод Invalidate()?
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
есть коллекция picturebox
Код:
Dictionary<string, PictureBox> PictureBoxsDict = new Dictionary<string, PictureBox>();
Как к каждому элементу этой коллекции применить метод Invalidate()?
Чтобы применить метод Invalidate() к каждому элементу в коллекции PictureBox, вы можете использовать цикл foreach для перебора всех значений в словаре PictureBoxsDict и вызвать метод Invalidate() для каждого PictureBox. Вот пример кода на C#:csharp
Код:
foreach (PictureBox pictureBox in PictureBoxsDict.Values)
{
    pictureBox.Invalidate();
}
В этом примере PictureBoxsDict.Values возвращает коллекцию всех значений в словаре PictureBoxsDict, то есть все экземпляры PictureBox. Затем мы перебираем каждый PictureBox в цикле и вызываем метод Invalidate() для каждого из них.
Таким образом, Invalidate() будет применяться ко всем элементам в коллекции PictureBox и вызывать перерисовку каждого изображения.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
764
Реакции
2.553
Ra
2.725
@Добрый робот (ChatGPT)
c#
есть коллекция picturebox.
C#:
Dictionary<string, PictureBox> PictureBoxsDict = new Dictionary<string, PictureBox>();
На каждом picturebox есть изображение image. Как можно мышкой взять изображение и перенести на другой пустой picturebox
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
есть коллекция picturebox.
C#:
Dictionary<string, PictureBox> PictureBoxsDict = new Dictionary<string, PictureBox>();
На каждом picturebox есть изображение image. Как можно мышкой взять изображение и перенести на другой пустой picturebox
Вот пример кода на C#, который позволяет перетаскивать изображение с одного PictureBox на другой:csharp
Код:
// Обработчик события MouseDown для исходного PictureBox
private void pictureBox_MouseDown(object sender, MouseEventArgs e)
{
    // Проверяем, что нажата левая кнопка мыши
    if (e.Button == MouseButtons.Left)
    {
        PictureBox sourcePictureBox = (PictureBox)sender;
        
        // Проверяем, что исходный PictureBox содержит изображение
        if (sourcePictureBox.Image != null)
        {
            // Запоминаем изображение во временной переменной и удаляем его из исходного PictureBox
            Image draggedImage = sourcePictureBox.Image;
            sourcePictureBox.Image = null;
            
            // Начинаем операцию перетаскивания изображения
            sourcePictureBox.DoDragDrop(draggedImage, DragDropEffects.Move);
        }
    }
}

// Обработчик события DragEnter для целевого PictureBox
private void pictureBox_DragEnter(object sender, DragEventArgs e)
{
    // Проверяем, что перетаскивается изображение
    if (e.Data.GetDataPresent(DataFormats.Bitmap))
    {
        e.Effect = DragDropEffects.Move;
    }
}

// Обработчик события DragDrop для целевого PictureBox
private void pictureBox_DragDrop(object sender, DragEventArgs e)
{
    PictureBox targetPictureBox = (PictureBox)sender;
    
    // Получаем перетаскиваемое изображение
    Image droppedImage = (Image)e.Data.GetData(DataFormats.Bitmap);
    
    // Проверяем, что целевой PictureBox пустой
    if (targetPictureBox.Image == null)
    {
        // Устанавливаем перетаскиваемое изображение в целевой PictureBox
        targetPictureBox.Image = droppedImage;
    }
}
В этом примере каждый PictureBox должен иметь соответствующие обработчики событий MouseDown, DragEnter и DragDrop. Вы можете привязать эти обработчики к каждому PictureBox в вашей коллекции PictureBoxDict следующим образом:csharp
Код:
foreach (PictureBox pictureBox in PictureBoxsDict.Values)
{
    pictureBox.MouseDown += pictureBox_MouseDown;
    pictureBox.DragEnter += pictureBox_DragEnter;
    pictureBox.DragDrop += pictureBox_DragDrop;
}
Теперь, когда вы щелкаете и удерживаете левую кнопку мыши на PictureBox с изображением, вы можете перетащить изображение на другой пустой PictureBox.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
764
Реакции
2.553
Ra
2.725
@Добрый робот (ChatGPT)
c#
При кликании по изображениям программа не заходит в этот код
C#:
// Обработчик события MouseDown для исходного PictureBox
        private void pictureBox_MouseDown(object sender, MouseEventArgs e)
        {
            // Проверяем, что нажата левая кнопка мыши
            if (e.Button == MouseButtons.Left)
            {
                PictureBox sourcePictureBox = (PictureBox)sender;

                // Проверяем, что исходный PictureBox содержит изображение
                if (sourcePictureBox.Image != null)
                {
                    // Запоминаем изображение во временной переменной и удаляем его из исходного PictureBox
                    Image draggedImage = sourcePictureBox.Image;
                    sourcePictureBox.Image = null;

                    // Начинаем операцию перетаскивания изображения
                    sourcePictureBox.DoDragDrop(draggedImage, DragDropEffects.Move);
                }
            }
        }
Что делать?
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
При кликании по изображениям программа не заходит в этот код
C#:
// Обработчик события MouseDown для исходного PictureBox
        private void pictureBox_MouseDown(object sender, MouseEventArgs e)
        {
            // Проверяем, что нажата левая кнопка мыши
            if (e.Button == MouseButtons.Left)
            {
                PictureBox sourcePictureBox = (PictureBox)sender;

                // Проверяем, что исходный PictureBox содержит изображение
                if (sourcePictureBox.Image != null)
                {
                    // Запоминаем изображение во временной переменной и удаляем его из исходного PictureBox
                    Image draggedImage = sourcePictureBox.Image;
                    sourcePictureBox.Image = null;

                    // Начинаем операцию перетаскивания изображения
                    sourcePictureBox.DoDragDrop(draggedImage, DragDropEffects.Move);
                }
            }
        }
Что делать?
Если ваш код обработчика события MouseDown не выполняется при щелчке по изображениям, возможно, есть несколько причин. Вот несколько шагов, которые вы можете проверить:
  • Убедитесь, что вы назначили этот обработчик события для каждого изображения. Вы можете сделать это в коде или через дизайнер формы. Убедитесь, что у каждого PictureBox установлено событие MouseDown, которое ссылается на ваш обработчик pictureBox_MouseDown.
  • Проверьте, что ваш PictureBox доступен для пользовательского взаимодействия. Установите свойство PictureBox.Enabled в true, чтобы убедиться, что он может получать события мыши.
  • Убедитесь, что вы не блокируете обработку событий мыши на других элементах управления или контейнерах. Если есть другие элементы управления или контейнеры поверх PictureBox, убедитесь, что они не препятствуют достижению события MouseDown до PictureBox.
  • Проверьте, что ваш PictureBox имеет изображение. Убедитесь, что свойство Image установлено для каждого PictureBox, с которым вы работаете. Если изображение отсутствует, обработчик MouseDown не будет вызван.
  • Убедитесь, что ваш обработчик события MouseDown привязан к правильному событию. Убедитесь, что имя обработчика (pictureBox_MouseDown) соответствует событию MouseDown для каждого PictureBox.
  • Проверьте консольные сообщения или отладочные данные для получения дополнительной информации о возможных ошибках или проблемах в вашем коде.
Если вы проверили все эти шаги и проблема все еще не решена, рекомендуется предоставить больше информации о вашем коде и окружении, чтобы мы могли более точно определить возможные причины и помочь вам с решением проблемы.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
764
Реакции
2.553
Ra
2.725
@Добрый робот (ChatGPT)
c#
Из трёх методов работает только private void pictureBox_MouseDown(object sender, MouseEventArgs e).
Другие private void pictureBox_DragEnter(object sender, DragEventArgs e) и private void pictureBox_DragDrop(object sender, DragEventArgs e) не работают. Что делать?

Код:
// Обработчик события MouseDown для исходного PictureBox
private void pictureBox_MouseDown(object sender, MouseEventArgs e)
{
    // Проверяем, что нажата левая кнопка мыши
    if (e.Button == MouseButtons.Left)
    {
        PictureBox sourcePictureBox = (PictureBox)sender;
        
        // Проверяем, что исходный PictureBox содержит изображение
        if (sourcePictureBox.Image != null)
        {
            // Запоминаем изображение во временной переменной и удаляем его из исходного PictureBox
            Image draggedImage = sourcePictureBox.Image;
            sourcePictureBox.Image = null;
            
            // Начинаем операцию перетаскивания изображения
            sourcePictureBox.DoDragDrop(draggedImage, DragDropEffects.Move);
        }
    }
}

// Обработчик события DragEnter для целевого PictureBox
private void pictureBox_DragEnter(object sender, DragEventArgs e)
{
    // Проверяем, что перетаскивается изображение
    if (e.Data.GetDataPresent(DataFormats.Bitmap))
    {
        e.Effect = DragDropEffects.Move;
    }
}

// Обработчик события DragDrop для целевого PictureBox
private void pictureBox_DragDrop(object sender, DragEventArgs e)
{
    PictureBox targetPictureBox = (PictureBox)sender;
    
    // Получаем перетаскиваемое изображение
    Image droppedImage = (Image)e.Data.GetData(DataFormats.Bitmap);
    
    // Проверяем, что целевой PictureBox пустой
    if (targetPictureBox.Image == null)
    {
        // Устанавливаем перетаскиваемое изображение в целевой PictureBox
        targetPictureBox.Image = droppedImage;
    }
}
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
Из трёх методов работает только private void pictureBox_MouseDown(object sender, MouseEventArgs e).
Другие private void pictureBox_DragEnter(object sender, DragEventArgs e) и private void pictureBox_DragDrop(object sender, DragEventArgs e) не работают. Что делать?

Код:
// Обработчик события MouseDown для исходного PictureBox
private void pictureBox_MouseDown(object sender, MouseEventArgs e)
{
    // Проверяем, что нажата левая кнопка мыши
    if (e.Button == MouseButtons.Left)
    {
        PictureBox sourcePictureBox = (PictureBox)sender;
        
        // Проверяем, что исходный PictureBox содержит изображение
        if (sourcePictureBox.Image != null)
        {
            // Запоминаем изображение во временной переменной и удаляем его из исходного PictureBox
            Image draggedImage = sourcePictureBox.Image;
            sourcePictureBox.Image = null;
            
            // Начинаем операцию перетаскивания изображения
            sourcePictureBox.DoDragDrop(draggedImage, DragDropEffects.Move);
        }
    }
}

// Обработчик события DragEnter для целевого PictureBox
private void pictureBox_DragEnter(object sender, DragEventArgs e)
{
    // Проверяем, что перетаскивается изображение
    if (e.Data.GetDataPresent(DataFormats.Bitmap))
    {
        e.Effect = DragDropEffects.Move;
    }
}

// Обработчик события DragDrop для целевого PictureBox
private void pictureBox_DragDrop(object sender, DragEventArgs e)
{
    PictureBox targetPictureBox = (PictureBox)sender;
    
    // Получаем перетаскиваемое изображение
    Image droppedImage = (Image)e.Data.GetData(DataFormats.Bitmap);
    
    // Проверяем, что целевой PictureBox пустой
    if (targetPictureBox.Image == null)
    {
        // Устанавливаем перетаскиваемое изображение в целевой PictureBox
        targetPictureBox.Image = droppedImage;
    }
}
Возможно, проблема заключается в неправильной настройке обработчиков событий DragEnter и DragDrop для целевого PictureBox. Вам нужно убедиться, что вы связали эти методы с соответствующими событиями.
Вам нужно добавить следующий код в вашем конструкторе формы или в методе инициализации компонентов, чтобы связать методы событий с соответствующими событиями PictureBox:csharp
Код:
public Form1()
{
    InitializeComponent();

    // Связываем обработчики событий событиями DragEnter и DragDrop для целевого PictureBox
    pictureBox.DragEnter += pictureBox_DragEnter;
    pictureBox.DragDrop += pictureBox_DragDrop;
}
Убедитесь, что pictureBox - это имя вашего целевого PictureBox, и что оно совпадает с именем в вашем коде.
Если это не помогает, вам также стоит проверить, что у вас включена поддержка перетаскивания элементов у контрола PictureBox. Убедитесь, что установлено свойство AllowDrop в значении true:csharp
Код:
pictureBox.AllowDrop = true;
Если все настроено правильно, обработчики событий DragEnter и DragDrop должны быть вызваны при перетаскивании изображения на целевой PictureBox.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
764
Реакции
2.553
Ra
2.725
@Добрый робот (ChatGPT)
c#
Как узнать имя картинки которая находиться на picturebox по которой кликнули мышью. Если массив получаем по такому коду
Код:
string[] lst = Directory.GetFiles(@"D:\\Моё программирование\\Пять из десяти1\\bin\\Debug\\Images\");
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
Как узнать имя картинки которая находиться на picturebox по которой кликнули мышью. Если массив получаем по такому коду
Код:
string[] lst = Directory.GetFiles(@"D:\\Моё программирование\\Пять из десяти1\\bin\\Debug\\Images\");
Чтобы узнать имя картинки на PictureBox, по которой был выполнен щелчок мышью, вам нужно использовать обработчик событий MouseClick для PictureBox. Вот пример кода на C#, который позволяет получить имя файла картинки при щелчке на PictureBox:csharp
Код:
using System;
using System.IO;
using System.Windows.Forms;

namespace YourNamespace
{
    public partial class YourForm : Form
    {
        public YourForm()
        {
            InitializeComponent();
        }

        private void pictureBox_MouseClick(object sender, MouseEventArgs e)
        {
            PictureBox pictureBox = (PictureBox)sender;
            string imagePath = pictureBox.ImageLocation;

            if (!string.IsNullOrEmpty(imagePath))
            {
                string imageName = Path.GetFileName(imagePath);
                MessageBox.Show("Имя картинки: " + imageName);
            }
        }

        // Пример использования обработчика событий MouseClick для pictureBox
        private void Form1_Load(object sender, EventArgs e)
        {
            string[] lst = Directory.GetFiles(@"D:\Моё программирование\Пять из десяти1\bin\Debug\Images\");

            foreach (string imagePath in lst)
            {
                PictureBox pictureBox = new PictureBox();
                pictureBox.ImageLocation = imagePath;
                pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
                pictureBox.Width = 100;
                pictureBox.Height = 100;
                pictureBox.MouseClick += pictureBox_MouseClick;

                // Добавьте pictureBox в ваш контейнер (например, Panel или TableLayoutPanel)
                // panel1.Controls.Add(pictureBox);
                // tableLayoutPanel1.Controls.Add(pictureBox);
            }
        }
    }
}
В приведенном примере кода pictureBox_MouseClick является обработчиком события MouseClick для PictureBox. Он получает путь к изображению через свойство ImageLocation PictureBox, а затем извлекает имя файла с помощью метода Path.GetFileName. Имя файла выводится в MessageBox, но вы можете выполнить нужные вам операции с этой информацией.
Обратите внимание, что pictureBox_MouseClick должен быть подключен как обработчик событий для каждого PictureBox, который вы добавляете в ваш контейнер.
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.995
Реакции
343
Ra
255
@Добрый робот (ChatGPT)
c#
Что означает это выражение
C#:
pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
В C# выражение "pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;" устанавливает свойство "SizeMode" для объекта "pictureBox" в значение "PictureBoxSizeMode.StretchImage". Это означает, что изображение, отображаемое в элементе управления "pictureBox", будет масштабироваться, чтобы заполнить размеры элемента.
При использовании "PictureBoxSizeMode.StretchImage" изображение будет растягиваться или сжиматься пропорционально, чтобы заполнить доступное пространство элемента "pictureBox". Это может привести к искажению пропорций изображения, если его исходные размеры не соответствуют размерам элемента "pictureBox".
Другие значения для свойства "SizeMode" включают:
  • "Normal": Изображение отображается в своем исходном размере без изменений размера.
  • "AutoSize": Размер элемента "pictureBox" автоматически подстраивается под размеры изображения.
  • "CenterImage": Изображение отображается в центре элемента "pictureBox", сохраняя свои исходные размеры.
  • "Zoom": Изображение масштабируется пропорционально, чтобы подстроиться под размеры элемента "pictureBox", сохраняя свои пропорции.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
764
Реакции
2.553
Ra
2.725
@Добрый робот (ChatGPT)
c#
Где я могу назначить это свойство
C#:
PictureBox.ImageLocation = imagePath;

Если все PictureBox у меня находятся в коллекции
C#:
 Dictionary<string, PictureBox> PictureBoxsDict = new Dictionary<string, PictureBox>();

а изображения назначаются PictureBox через такой код
C#:
for (i = 0; i < 10; i++)
                {
                    var item = PictureBoxsDict.ElementAt(i);                   
                    ((PictureBox)item.Value).Image = Image.FromFile(shuffledWrds[i - 10]);
                }

А пути к изображениям находятся и затем сортируются через такой код
C#:
string[] lst = Directory.GetFiles(@"D:\\Моё программирование\\Пять из десяти1\\bin\\Debug\\Images\");
int i = 0;
this.list = new Dictionary<int, string>(lst.ToDictionary(x => i++, x => x));
Random rnd = new Random();
var shuffledWords = list.OrderBy(x => rnd.Next(0, 10)).Select(x => x.Value).ToList();
 

Теги по которым нашли тему

  1. chatgpt
  2. шишонин
  3. робот
  4. амигуруми
  5. Александр Шишонин
  6. Написать игру
  7. массаж
  8. парсинг
  9. Хроники Акаши
  10. опционы
Сверху