Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 20
1

Программное создание PictureBox с проверкой, нет ли на его месте другого PictureBox

25.09.2016, 09:48. Показов 1701. Ответов 5
Метки нет (Все метки)

Здравствуйте! Нужно чтобы при нажатии кнопки создавался PictureBox с определёнными свойствами Location: x, y и SizeMode: Autosize и в него загрузилась определённая картинка. Но нужно чтобы перед этим была произведена проверка на наличие другого PictureBox на этих координатах (Location) и если на них уже имеется PictureBox, то нужно чтобы создаваемый PictureBox размещался по другим координатам, но если и там уже есть PictureBox, то по следующим и т.д. Все PictureBox'ы будут иметь одинаковый размер. Помогите, пожалуйста, с решением.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2016, 09:48
Ответы с готовыми решениями:

Прозрачный фон у картинки на элементе PictureBox непрозрачен для другого PictureBox
Здравствуйте! Проблема состоит в следующем! У меня есть картинка .png с прозрачным фоном. При...

PictureBox и рисование в произвольном месте
Добрый день. Столкнулся с такой задачей. В PictureBox в на задний план помещаю рисунок. Теперь...

Программное выделение области на PictureBox
Всем привет, есть небольшая проблема, возможно ли сделать чтобы на одном picturebox выделялась...

Как с Form4 дать нужным PictureBox видимость, если PictureBox из Form6
Как с Form4 по нажатию кнопки дать нужным PictureBox видимость, если PictureBox из Form6?...

5
Модератор
Эксперт .NET
3372 / 3031 / 464
Регистрация: 27.01.2014
Сообщений: 5,626
25.09.2016, 10:39 2
при добавлении первого и всех последующих - храните координаты последнего где-то в переменной. при вставке просто прибавляйте какой-то offset (смещение) к последник координатам и вставляйте в это место новый PictureBox...
2
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 20
25.09.2016, 11:52  [ТС] 3
Yury Komar, Спасибо! Можете привести пример кода как создавать PictureBox со свойствами?
0
Модератор
Эксперт .NET
3372 / 3031 / 464
Регистрация: 27.01.2014
Сообщений: 5,626
25.09.2016, 16:19 4
Лучший ответ Сообщение было отмечено HyacintH как решение

Решение

Цитата Сообщение от HyacintH Посмотреть сообщение
Можете привести пример кода как создавать PictureBox со свойствами?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Public Class Form1
 
    Dim PBcount As Integer = 0
    Dim LastPSN As New System.Drawing.Point(5, 5)
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
 
        Dim PBSize As New Size(50, 50)
 
        Me.Controls.Add(New PictureBox With { _
          .Name = "PictureBox" & PBcount + 1, _
          .Location = LastPSN, _
          .Size = PBSize, _
          .SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage, _
          .Image = My.Resources.broom, _
          .BackColor = System.Drawing.Color.White, _
          .BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle})
 
        If LastPSN.X + 10 + (PBSize.Width * 2) > Me.Width Then
            LastPSN.X = 5
            LastPSN.Y = LastPSN.Y + PBSize.Height + 5
        Else
            LastPSN = New System.Drawing.Point(LastPSN.X + PBSize.Width + 5, LastPSN.Y)
        End If
 
    End Sub
 
End Class
Миниатюры
Программное создание PictureBox с проверкой, нет ли на его месте другого PictureBox  
3
1416 / 1319 / 303
Регистрация: 03.10.2012
Сообщений: 1,380
25.09.2016, 16:40 5
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Class Form1
    Dim pt As Point
    Dim pb As PictureBox
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If (From p As PictureBox In Me.Controls.OfType(Of PictureBox)() Where p.Location = pt).Count <> 0 Then
            pt.Offset(10, 10)
            Dim pbx As New PictureBox With {.Size = New Size(50, 50), .BackColor = Color.Red}
            pbx.Location = pt
            Me.Controls.Add(pbx)
        End If
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        pb = New PictureBox With {.Location = New Point(20, 20), .Size = New Size(50, 50), .BorderStyle = BorderStyle.FixedSingle}
        Me.Controls.Add(pb)
        pt = pb.Location
    End Sub
End Class
Добавлено через 1 минуту
Yury Komar , извини, не заметил, что уже ответил
3
0 / 0 / 0
Регистрация: 06.09.2016
Сообщений: 20
26.09.2016, 04:08  [ТС] 6
Yury Komar, MrCrown, Большое спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2016, 04:08

Как остановить GIf анимацию в PictureBox по клику на сам PictureBox?
Добрый день! Прошу помочь решить вопрос с GIF анимацией в PictureBox. Задумка такова:...

PictureBox имеет прозрачность относительно формы, но не PictureBox, на котором расположен
Подскажите, пожалуйста. У меня такая ситуация: Один PictureBox наложен на другой. Но тот, который...

Клик по PictureBox: получение координат клика на PictureBox.Image
Собственно имею PictureBox, например размерами 500 на 500 и в нем есть картинка, например размерами...

Конфликт между PictureBox.Load и PictureBox.Image.Save
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru