Как я могу обнаружить удерживаемую кнопку мыши по PictureBox?

Вопрос не очень понятен. Но вот несколько сценариев, которые, я думаю, могут быть предназначены.

  1. Компонент TabsPanel принимает вкладки как дочерние элементы: ответ Прабина так же верен, как и получается. (За исключением отсутствующих ключевых атрибутов в компонентах TabsPanel и Tabs)

  2. Компонент TabsPanel и список вкладок располагаются рядом:

Примечание. Компонент является либо одним единственным корнем, либо списком других допустимых компонентов.

Так что либо это правильно.

this.props.buttons.tabs.map((button, index) => {
    return (
      <div key={index}>
        <TabsPanel label={button.labelKey} />
        {button.subtabs.map(subtab => {
          return (
            <Tabs key={subtab.labelKey}>
              <TabsPanel label={subtab.labelKey} />
            </Tabs>
          )
        })}
      </div>
    )
  })

Или это правильно.

this.props.buttons.tabs.map((button, index) => {
  return [
    <TabsPanel label={button.labelKey} key={index} />,
    {
      ...button.subtabs.map(subtab => {
        return (
          <Tabs key={subtab.labelkey}>
            <TabsPanel label={subtab.labelKey} />
          </Tabs>
        )
      })
    }
  ]
})

Также обратите внимание на ключевой атрибут в компонентах Tabs и TabsPanel. Это важно, и я оставляю это на ваше усмотрение, чтобы найти его важность.

11
задан Simon 2 December 2008 в 15:47
поделиться

4 ответа

Когда мышь будет придавлена, большинство средств управления будет затем Управлять. Получите вход мыши. Это означает, что все События mouseMove отправляются в исходное управление, которое получило, а не управление, мышь, оказывается, закончена. Это продолжается, пока мышь не теряет получение, которое обычно происходит на мыши.

Если действительно необходимо знать, когда мышь по управлению, даже когда другое управление захватило мышь вход затем, у Вас только действительно есть один путь. Необходимо отследить сообщения окон, предназначенные для других средств управления в приложении. Чтобы сделать это, Вы должны добавить фильтр сообщения...

Application.AddMessageFilter(myFilterClassInstance);

Затем необходимо реализовать IMessageFilter на подходящем классе...

public class MyFilterClass : IMessageFilter
{
    public bool PreFilterMessage(ref Message m)
    {
        if (m.Msg == WM_MOUSEMOVE)
            // Check if mouse is over my picture box!

        return false;
    }
}

Затем Вы наблюдаете за событиями перемещения мыши и проверкой, если они по Вашему полю изображения и делают то, что это - Вы, хотят сделать.

14
ответ дан 3 December 2019 в 02:12
поделиться

События от нажатия мыши

Используйте Событие mouseDown, чтобы просто обнаружить вниз нажатие кнопки мыши и установить это. Получение к истинному так, чтобы Вы затем получили другие события от нажатия мыши, даже когда мышь выходит из-под контроля (т.е. Вы не получите событие MouseLeave, потому что Вы получили мышь). Получение выпуска путем установки этого. Получение ко лжи, когда MouseUp происходит.

Просто проверив состояние мыши

Это не может быть релевантно, но можно проверить System.Windows.Control.MousePosition и посмотрите, находится ли это в PictureBox.ClientRectangle, затем проверьте Control.MouseButtons статическое свойство, для которого кнопки могли бы снизиться в любое время.

Как в:

if  (pictureBox.ClientRectangle.Contains(pictureBox.PointToClient(Control.MousePosition)))
{
   if ((Control.MouseButtons & MouseButtons.Left) != 0)
   {
     // Left button is down.
   }
}
13
ответ дан 3 December 2019 в 02:12
поделиться

При попытке реализовать какую-то операцию перетаскивания, Перетаскивание... события (DragEnter, DragDrop и т.д.) на поле изображения получения - то, что Вы хотите использовать. В основном Вы запускаете операцию перетаскивания с помощью метода DoDragDrop управления исходным кодом, и затем любое управление, которое Вы перетаскиваете, будет иметь свое Перетаскивание... событиями повышенный.

Ищите "DoDragDrop" на MSDN, чтобы видеть, как реализовать это.

3
ответ дан 3 December 2019 в 02:12
поделиться

установите флаг или состояние на мыши вниз. выпустите его на мыши. Когда на мыши по огням для поля изображения проверяют Ваше состояние. Теперь можно обнаружить, когда человек перетаскивает что-то.

-1
ответ дан 3 December 2019 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: