У меня есть два списка, один для доступных элементов и один для выбранных элементов, так что пользователь может перемещать элементы между этими двумя объектами либо перетаскиванием, либо двойным щелчком.
Это не идеальный код, и большая часть логики написана в событии MouseMove, где я также могу иметь X и Y местоположения мыши ... Я ищу этот сценарий, чтобы предотвратить его: пользователь держит левую кнопку мыши в левом списке и выберите элемент, НО он снова отпускает кнопку мыши в том же списке, поэтому мне нужен способ узнать, находится ли он в том же списке, а затем не делать перетаскивание ... скажите мне границы списка, который я могу использовать? или какие-нибудь другие лучшие мысли, которые у вас есть?
private void lstAvailable_MouseMove(Object eventSender, MouseEventArgs eventArgs)
{
//*************** FUNCTION DETAILS ***************
//User moves mouse in the Available list
//***************** INSTRUCTIONS *****************
MouseButtons Button = eventArgs.Button;
int Shift = (int)Control.ModifierKeys / 0x10000;
float X = (float)VB6.PixelsToTwipsX(eventArgs.X);
float Y = (float)VB6.PixelsToTwipsY(eventArgs.Y);
moDualListBox.List1_MouseMove(Button, Shift, X, Y);
if (eventArgs.Button == MouseButtons.Left )
{
if (!mbClickProcessed) // it is a DragDrop
{
this.lstAvailable.DoDragDrop(this.lstAvailable.SelectedItems, DragDropEffects.Move);
mbClickProcessed = true;
}
if (mbClickProcessed) // it is a DoubleClick
{
MoveClick();
MoveLostFocus();
mbClickProcessed = true;
}
}
}