C#で、ヘルプのツールチップtooltip的に、特定のコントロールの下に表示して、画面外に出てしまわないように調整する関数。

/// <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;
    }
}