none
如何將控制項的位置固定 RRS feed

  • 問題

  • 假如我想要它顯示在控制項的正下方的時候,X軸跟Y軸的位置如何設定?
    http://v1286400.marlito.com/index.php 我的論壇,裡面有我寫的VB2008的程式。
    2010年1月20日 上午 10:55

解答

  • Hi,

    大概的解法有兩種

    一種是自行把ContextMenu給叫起並帶入位置

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim btn As Button = DirectCast(sender, Button)
            Me.ContextMenuStrip1.Show(Me, btn.Left, btn.Top + btn.Height)
        End Sub

    第二種是在ContextMenuStrip1.Opened中處理
        Private Sub ContextMenuStrip1_Opened(ByVal sender As Object, ByVal e As System.EventArgs) Handles ContextMenuStrip1.Opened
            Dim p As Point = PointToScreen(Button1.Location)
            Me.ContextMenuStrip1.Left = p.X
            Me.ContextMenuStrip1.Top = p.Y + Button1.Height
        End Sub


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    • 已標示為解答 四虐狼 2010年1月24日 下午 02:45
    2010年1月20日 上午 11:40

所有回覆

  • Hi,

    你"我想要它顯示在控制項的正下方"文中的"它"是指?
    是控制項嗎?
    想把控制項顯示在控制項的正下方?
    兩個控制項是不同的控制項嗎?

    要控制控制項座標
    可使用Location屬性
    MSDN文章中就有範例可參考
    Control.Location 屬性

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年1月20日 上午 11:09
  • Hi,

    你"我想要它顯示在控制項的正下方"文中的"它"是指?
    是控制項嗎?
    想把控制項顯示在控制項的正下方?
    兩個控制項是不同的控制項嗎?

    要控制控制項座標
    可使用Location屬性
    MSDN文章中就有範例可參考
    Control.Location 屬性

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/

    它是指ContextMenuStrip1,謝謝您的提醒。
    另外一個物件為Button1。 
    http://v1286400.marlito.com/index.php 我的論壇,裡面有我寫的VB2008的程式。
    2010年1月20日 上午 11:22
  • Hi,

    大概的解法有兩種

    一種是自行把ContextMenu給叫起並帶入位置

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim btn As Button = DirectCast(sender, Button)
            Me.ContextMenuStrip1.Show(Me, btn.Left, btn.Top + btn.Height)
        End Sub

    第二種是在ContextMenuStrip1.Opened中處理
        Private Sub ContextMenuStrip1_Opened(ByVal sender As Object, ByVal e As System.EventArgs) Handles ContextMenuStrip1.Opened
            Dim p As Point = PointToScreen(Button1.Location)
            Me.ContextMenuStrip1.Left = p.X
            Me.ContextMenuStrip1.Top = p.Y + Button1.Height
        End Sub


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    • 已標示為解答 四虐狼 2010年1月24日 下午 02:45
    2010年1月20日 上午 11:40