VB2008 如何將表單畫面固定住不被移動及更改大小

請教一下各位大大

小弟規畫了一個表單..執行後會被成最大化

請問要如何設定才能讓它不能被移動及變更大小!!

一時想不起來要在哪設定了

Update:

類似 FormBorderStyle.None() 這樣!無法去移動他的位置

Update 2:

HI~~大大.您的方法我測試了..視窗仍然是可以被移動..在看到大大解答前小弟就試過直接在FORM1_MOVE 中 給Me.Left=0 這樣也是無法達到想要的效果.套入大大的程式也是NG,改用 Me.Location = New Point(xpr, ypr)..還是不行!!我在想其他方式!謝謝您了

Update 3:

似乎是小弟程式的問題..目前的確會固定在螢幕上..但畫面被移動時會有表單抖動..小弟想要的是類似凍結在螢幕上

Update 4:

感激大大您花時間來答覆..目前固定於同一個位置了沒錯..但最終的需求是像凍結般~~一動也不會動!我在try~~

4 Answers

Rating
  • 1 decade ago
    Favorite Answer

    設定Form的 「FormBorderStyle」 屬性,可以達到表單無法改變大小的功能。

    另外不讓表單移動的功能,要靠自己去寫!

    定兩個全域變數,存放表單在載入完之後的「Left」和「Top」兩個屬性

    之後在Form的「Move」事件裡將表單的Left和Top設成表單剛載入時的值

    程式碼大概像這樣

    Public Class Form1

    Private preX, preY As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedToolWindow

    preX = My.Computer.Screen.Bounds.Width / 2 - Me.Width / 2

    preY = My.Computer.Screen.Bounds.Height / 2 - Me.Height / 2

    Me.Form1_Move(Me, New System.EventArgs)

    End Sub

    Private Sub Form1_Move(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Move

    Me.Left = preX

    Me.Top = preY

    End Sub

    End Class

    2009-07-17 11:04:37 補充:

    那就改成這樣

    Private Sub Form1_Move(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Move

    Me.Enabled = False

    Me.Left = preX

    Me.Top = preY

    Me.Enabled = True

    End Sub

    2009-07-17 20:52:10 補充:

    Private Sub Form1_Move(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Move

    Me.SetBound(preX,preY,Me.Width,Me.Height)

    End Sub

    Source(s): .NET Programer, .NET Programer
  • 1 decade ago

    我真的是自己畫了~~本來不想用這樣的!我以前用INTUCH圖控軟體也是自己畫標題列..沒想到VB也要!呵~~

  • 1 decade ago

    小小魚的方法比較快, 無標題列的FORM就拖不動了

  • 1 decade ago

    Visual Basic 6.0 表單的 Moveable 屬性在 Visual Basic 2008 中沒有對等用法。

    概念上的差異

    在 Visual Basic 6.0 中,表單的 Moveable 屬性可設定為 False,以防止使用者於執行階段移動表單。Visual Basic 2008 中的 Windows Form 沒有對等屬性。

    雖然它通常會視為不當的使用者介面設計,但是您可以將 FormBorderStyle 屬性設定為 None,再將 ControlBox 屬性設定為 False,以便在 Visual Basic 2008 中完成類似行為。

    2009-07-18 19:10:51 補充:

    至於標題列...可以自行製作(直接用Image放張圖)

    放到最大,以及關閉的功能,都可以在程式碼中使用屬性辦到

Still have questions? Get your answers by asking now.