private void ListTab_MouseMove(object sender, MouseEventArgs e)
{
//タブのD&D
if (!this._cfgCommon.TabMouseLock && e.Button == MouseButtons.Left && _tabDrag)
{
string tn = "";
Rectangle dragEnableRectangle = new Rectangle(_tabMouseDownPoint.X - (SystemInformation.DragSize.Width / 2), _tabMouseDownPoint.Y - (SystemInformation.DragSize.Height / 2), SystemInformation.DragSize.Width, SystemInformation.DragSize.Height);
if (!dragEnableRectangle.Contains(e.Location))
{
//タブが多段の場合にはMouseDownの前の段階で選択されたタブの段が変わっているので、このタイミングでカーソルの位置からタブを判定出来ない。
tn = ListTab.SelectedTab.Text;
}
if (string.IsNullOrEmpty(tn)) return;
foreach (TabPage tb in ListTab.TabPages)
{
if (tb.Text == tn)
{
ListTab.DoDragDrop(tb, DragDropEffects.All);
break;
}
}
}
else
{
_tabDrag = false;
}
Point cpos = new Point(e.X, e.Y);
for (int i = 0; i < ListTab.TabPages.Count; i++)
{
Rectangle rect = ListTab.GetTabRect(i);
if (rect.Left <= cpos.X & cpos.X <= rect.Right &
rect.Top <= cpos.Y & cpos.Y <= rect.Bottom)
{
_rclickTabName = ListTab.TabPages[i].Text;
break;
}
}
}