Как я могу просматривать pictureboxes в panel1. control?
Я хочу иметь возможность перемещаться по каждому picturebox в моей panel1. controls с помощью клавиш со стрелками вправо и влево, не знаю, почему код, который я использую, не позволяет мне это сделать.
Вот код, который я использую:
Sub convertPic(ByVal sender As System.Object, ByVal e As System.EventArgs) 'CONVERT SENDER INTO PICTUREBOX, used on the images being displayed on the panel control, not used for images in database pic = CType(sender, PictureBox) ' Make new picturebox and fill it with inage data from pic, then after making dimesions fill dock with that image so that it ' can be streched or forshortend by dragging form. Dim expandpic As New PictureBox expandpic.Height = pic.Image.Height expandpic.Width = pic.Image.Width expandpic.Image = pic.Image expandpic.Dock = DockStyle.Fill expandpic.SizeMode = PictureBoxSizeMode.StretchImage ' Make a new form and add the new picture data to it Dim picform As New Form picform.Controls.Add(expandpic) picform.Height = 800 picform.Width = 600 picform.Show() End Sub Private Sub Navigate_pics(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Panel1.KeyDown If e.KeyCode = Keys.Right Then expandpic = CType(sender, PictureBox) picform.SelectNextControl(expandpic, True, True, True, True) End If End Sub
не знаю, что происходит.
Что я уже пробовал:
Я попытался изменить picform, которая является формой panel1. controls, и переключил ее, но это не сработало. Не знаю, что делать.
Ralf Meier
Может быть, вы попробуете вот так :
Private Sub Navigate_pics(ByVal sender As System.Объект, бывал е как система.Окна.Формы.KeyEventArgs) Обрабатывает Панель Panel1.Клавиша вниз
Панель 1.SelectNextControl ...
Конец Подводной Лодки
??? Что такое pic внутри SelectNextControl ? Где она определена и назначена ?
Member 11856456
Pic - это pictureboxes, которые я создал из массива. Pic добавляется в panel1. controls. Я пытаюсь использовать клавиши со стрелками вправо и влево, чтобы двигаться вперед и назад между изображениями, чтобы они могли отображаться в том темпе, в котором кто-то хотел бы идти.
Ralf Meier
Это отличается от кода, который вы опубликовали ...
Когда я вижу код, я предполагаю, что у вас есть панель с x PictureBoxes в ней. Ваша панель имеет фокус, и вы хотите выбрать следующий PictureBox внутри панели.
Так... что у тебя на самом деле? Количество PictureBoxes внутри панели или один PictureBox, который должен отображать несколько изображений ?
Если у вас есть количество PictureBoxes и вы выбираете один из них, панель больше не имеет фокуса. Так что теперь Keydown-событие будет исходить из PictureBox ...
Если у вас есть один PictureBox, вам следует подумать о создании его индивидуальной версии, которая будет иметь желаемое поведение ...
Member 11856456
Я улучшил вопрос, я думал, что это будет простой ответ, который я просто не мог понять. Причина, по которой я предполагаю, что панель содержит нужную мне информацию, заключается в том, что исходные pictureboxes, получившие название "pic", расположены на панели.
Ralf Meier
Вы еще не ответили на мои вопросы ...
Пожалуйста, помните: я не сижу рядом с вами и не вижу того, что видите вы ...
Member 11856456
Счетчика нет, изображения преобразуются в каждую папку, в которой они находятся в виде массива. эти изображения помещаются по отдельности в графические поля, а затем отображаются в panel1.control. Я могу перейти к 1 изображению за раз, но я хочу иметь возможность прокручивать каждое изображение с помощью клавиши со стрелкой вправо.
1. на панели есть графические поля
2. Я не уверен, где событие keydown должны быть размещены и как его правильно использовать.
3. "ПИК", которая является массив pictureboxes поведение элемента управления PictureBox, предполагают, чтобы сделать. Я просто хочу индивидуально перейти к следующему и показать его. Я думаю, что было бы проще сделать новую форму и отобразить их на ней, перейдя к следующему графическому окну в строке. В каком-то смысле это было бы похоже на просмотрщик картинок.
Ralf Meier
Я повторяю своими словами то, что я понял (то, что вы хотите иметь) ...
- элемент управления, которому вы можете дать список изображений, которые были показаны
- вы можете / будете отображать, например, 5 картинок
-с помощью левого / правого Курсора вы хотите повернуть список вперед или назад так, чтобы отображались/могли отображаться различные изображения
В тот момент, когда вы поняли это с помощью панели, которая содержит несколько PictureBoxes
- с помощью клавиши курсора вы хотите повернуть PictureBoxes или их содержимое
Итак, мой вопрос (потому что это был бы мой подход) :
Почему бы вам не создать свой собственный индивидуальный контроль, который имеет такое поведение ? Этот элемент управления может иметь свойство (type List of Image), в котором определяются изображения. Внутри этого элемента управления вы выполняете все необходимые действия ...
В первый момент это было бы большой работой ... но как только вы начнете с ним работать, вы увидите, что это намного проще, так как он был сшит в самом начале ...
Member 11856456
Я понимаю, о чем вы говорите, но понятия не имею, как к этому подойти. Я все еще учусь vb.net время от времени я пытаюсь продвинуть то, что у меня есть, к чему-то более эффективному или продвинутому. Поэтому, если бы вы могли помочь и показать пример того, о чем вы думаете, я был бы очень признателен.
Ralf Meier
смотрите мое решение ...