/// <summary> /// コントロール側にラベルを移動 /// </summary> private void MoveLabelToControlSide(Label oLblHelp, Control oControl) { // PanelやTab内のコントロールに対しても正しく配置できるよう、 // コントロールの位置をフォーム座標に変換 Form oBaseForm = oControl.FindForm(); Point oPointInScreen = oControl.PointToScreen(oControl.ClientRectangle.Location); Point oPointInForm = oBaseForm.PointToClient(oPointInScreen); // ラベル表示位置の設定 Point oCtrlBottomCenter = new Point(oPointInForm.X + oControl.Width / 2, oPointInForm.Y + oControl.Height); Point oLblDispPoint = new Point(oCtrlBottomCenter.X - oLblHelp.Width / 2, oCtrlBottomCenter.Y + 3); oLblHelp.Location = oLblDispPoint; if (oBaseForm.Width < oLblHelp.Left + oLblHelp.Width) { oLblHelp.Left = oBaseForm.ClientRectangle.Width - oLblHelp.Width; } if (oLblHelp.Left < 0) { oLblHelp.Left = 0; } }