none
TabControlのSizeについて RRS feed

  • 質問

  •  

    TabControlについての質問です。

     

    Size.Height : 200、ItemSize.Height:17
    のTabControlがありまして
    tabPage1.Size.Heightが175となっています。

     

     

    ItemSize.Height(17) + tabPage1.Size.Height(175) + X(8?) ⇒ Size.Height(200)

    となると思うのですが、Xの値はどこから算出すればよろしいのでしょうか?

     

    tabPage1の内容によってTabControlの高さを変更しようとしております。

    よろしくお願いいたします。

    2007年11月26日 5:12

回答

  • 変更する前に、
    X = Size.Height - ItemSize.Height - tabPage1.Size.Height
    で計算してはいかがでしょう?

     

    本当は TCM_ADJUSTRECT で Windows に計算させるようです。
    # Rectangle って RECT と同じじゃないかも。

    コード ブロック

    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    public static extern IntPtr

      SendMessage(IntPtr hWnd, int msg, int wParam, ref Rectangle lParam);

    ...

    Rectangle r = tabControl1.ClientRectangle;
    SendMessage(tabControl1.Handle, TCM_ADJUSTRECT, 0, ref r);
    MessageBox.Show(r.ToString());

     

     

    2007年11月26日 9:47

すべての返信

  • 変更する前に、
    X = Size.Height - ItemSize.Height - tabPage1.Size.Height
    で計算してはいかがでしょう?

     

    本当は TCM_ADJUSTRECT で Windows に計算させるようです。
    # Rectangle って RECT と同じじゃないかも。

    コード ブロック

    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    public static extern IntPtr

      SendMessage(IntPtr hWnd, int msg, int wParam, ref Rectangle lParam);

    ...

    Rectangle r = tabControl1.ClientRectangle;
    SendMessage(tabControl1.Handle, TCM_ADJUSTRECT, 0, ref r);
    MessageBox.Show(r.ToString());

     

     

    2007年11月26日 9:47
  • お世話になります。

     

    ご教授いただいた方法で対応しようと思います。

     

    ありがとうございました。

    2007年11月27日 10:36