none
想問有關HScrollBar的問題 RRS feed

  • 問題

  • 我有一個程式有以下的UI

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Label2.Location = New Point(3, Panel1.Size.Height - 50)
            HScrollBar1.Minimum = 0
            HScrollBar1.Maximum = 1000
            HScrollBar1.SmallChange = 1
            HScrollBar1.LargeChange = 1
        End Sub

    我用Form1_Load來設定初值,可以正常的捲動

    但是如果按下"視窗最大化" 類似的改變視窗大小動作

    原本的可以拉的HScrollbar,就會變肥,就不能拉了

    這個要調什麼屬性啊??


    None

    2013年2月22日 上午 09:49

解答

  • HScrollBar1.Maximum = 10420

    HScrollBar1.LargeChange = 2600

    10420 - 2600 +1 = 7803 

    已經到頂了

    只能靠程式設定VALUE值

    參考: ScrollBar.Maximum 屬性 備註


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2013年2月23日 上午 05:54

所有回覆

  • 您好,

    请您尝试把水平条的Dock属性设置Bottom。看我完整代码:

    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Partial Class Form1
        Inherits System.Windows.Forms.Form
     
        'Form 重写 Dispose,以清理组件列表。
        <System.Diagnostics.DebuggerNonUserCode()> _
        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
            Try
                If disposing AndAlso components IsNot Nothing Then
                    components.Dispose()
                End If
            Finally
                MyBase.Dispose(disposing)
            End Try
        End Sub
     
        'Windows 窗体设计器所必需的
        Private components As System.ComponentModel.IContainer
     
        '注意: 以下过程是 Windows 窗体设计器所必需的
        '可以使用 Windows 窗体设计器修改它。
        '不要使用代码编辑器修改它。
        <System.Diagnostics.DebuggerStepThrough()> _
        Private Sub InitializeComponent()
            Me.WebBrowser1 = New System.Windows.Forms.WebBrowser()
            Me.MenuStrip1 = New System.Windows.Forms.MenuStrip()
            Me.FileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
            Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
            Me.HScrollBar1 = New System.Windows.Forms.HScrollBar()
            Me.MenuStrip1.SuspendLayout()
            CType(Me.SplitContainer1System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SplitContainer1.Panel2.SuspendLayout()
            Me.SplitContainer1.SuspendLayout()
            Me.SuspendLayout()
            '
            'WebBrowser1
            '
            Me.WebBrowser1.Dock = System.Windows.Forms.DockStyle.Fill
            Me.WebBrowser1.Location = New System.Drawing.Point(024)
            Me.WebBrowser1.MinimumSize = New System.Drawing.Size(2020)
            Me.WebBrowser1.Name = "WebBrowser1"
            Me.WebBrowser1.Size = New System.Drawing.Size(284237)
            Me.WebBrowser1.TabIndex = 0
            Me.WebBrowser1.Url = New System.Uri("http://www.baidu.com"System.UriKind.Absolute)
            '
            'MenuStrip1
            '
            Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FileToolStripMenuItem})
            Me.MenuStrip1.Location = New System.Drawing.Point(00)
            Me.MenuStrip1.Name = "MenuStrip1"
            Me.MenuStrip1.Size = New System.Drawing.Size(28424)
            Me.MenuStrip1.TabIndex = 1
            Me.MenuStrip1.Text = "MenuStrip1"
            '
            'FileToolStripMenuItem
            '
            Me.FileToolStripMenuItem.Name = "FileToolStripMenuItem"
            Me.FileToolStripMenuItem.Size = New System.Drawing.Size(3820)
            Me.FileToolStripMenuItem.Text = "File"
            '
            'SplitContainer1
            '
            Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
            Me.SplitContainer1.Location = New System.Drawing.Point(024)
            Me.SplitContainer1.Name = "SplitContainer1"
            '
            'SplitContainer1.Panel2
            '
            Me.SplitContainer1.Panel2.Controls.Add(Me.HScrollBar1)
            Me.SplitContainer1.Size = New System.Drawing.Size(284237)
            Me.SplitContainer1.SplitterDistance = 72
            Me.SplitContainer1.TabIndex = 2
            '
            'HScrollBar1
            '
            Me.HScrollBar1.Dock = System.Windows.Forms.DockStyle.Bottom
            Me.HScrollBar1.Location = New System.Drawing.Point(0220)
            Me.HScrollBar1.Name = "HScrollBar1"
            Me.HScrollBar1.Size = New System.Drawing.Size(20817)
            Me.HScrollBar1.TabIndex = 0
            '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!12.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(284261)
            Me.Controls.Add(Me.SplitContainer1)
            Me.Controls.Add(Me.WebBrowser1)
            Me.Controls.Add(Me.MenuStrip1)
            Me.MainMenuStrip = Me.MenuStrip1
            Me.Name = "Form1"
            Me.Text = "Form1"
            Me.MenuStrip1.ResumeLayout(False)
            Me.MenuStrip1.PerformLayout()
            Me.SplitContainer1.Panel2.ResumeLayout(False)
            CType(Me.SplitContainer1System.ComponentModel.ISupportInitialize).EndInit()
            Me.SplitContainer1.ResumeLayout(False)
            Me.ResumeLayout(False)
            Me.PerformLayout()
     
        End Sub
        Friend WithEvents WebBrowser1 As System.Windows.Forms.WebBrowser
        Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip
        Friend WithEvents FileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer
        Friend WithEvents HScrollBar1 As System.Windows.Forms.HScrollBar
    End Class

    帮助一起改进论坛质量?提交你的意见于此。
    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心 

    2013年2月22日 上午 10:06
  • 可是我的HScrollBar1已經Dock在Buttom的位置了...


    None

    2013年2月22日 上午 11:06
  • 您好,

    我試了一下,不會有問題說!

    是否能將您的專案放在skydrive上給大家download來看呢? Thanks.


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2013年2月22日 上午 11:20
  • Personal User,

    我无法重现你的问题,现在请你留下Email,我方便直接给发过去我的示例代码。你看看如何?


    帮助一起改进论坛质量?提交你的意见于此。
    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    2013年2月23日 上午 12:55
  • 我的專案簡化版

    http://sync.hamicloud.net/_oops/b8402073/6nq

    照道理說HScrollBar1應該可以捲到超過10000的地方

    可是捲到Hello=7803就停住了


    None

    2013年2月23日 上午 05:15
  • 您好,

    HScrollBar1.LargeChange = 1

    才會到達Maximum哦!

    請參考 Value of a HScrollbar


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2013年2月23日 上午 05:33
  • HScrollBar1.Maximum = 10420

    HScrollBar1.LargeChange = 2600

    10420 - 2600 +1 = 7803 

    已經到頂了

    只能靠程式設定VALUE值

    參考: ScrollBar.Maximum 屬性 備註


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2013年2月23日 上午 05:54
  • HScrollBar1.Maximum = 10420

    HScrollBar1.LargeChange = 2600

    10420 - 2600 +1 = 7803 

    已經到頂了

    只能靠程式設定VALUE值

    參考: ScrollBar.Maximum 屬性 備註


    你的意思是說,  HScrollBar1.LargeChange屬性是設定游標窗的寬度是嗎?

    好怪


    None

    2013年2月23日 下午 02:24
  • ........

    我甚麼時候說是設定寬度?

    給你的鏈結你有看嗎?



    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2013年2月23日 下午 02:42
  • HScrollBar1.Maximum = 10420

    HScrollBar1.LargeChange = 2600

    10420 - 2600 +1 = 7803 

    已經到頂了

    只能靠程式設定VALUE值

    參考: ScrollBar.Maximum 屬性 備註


    你的意思是說,  HScrollBar1.LargeChange屬性是設定游標窗的寬度是嗎?

    好怪


    None

    我還真看不出來 Alex 在哪邊說了『LargeChange屬性是設定游標窗的寬度』, 個人倒是很有興趣知道為何你會這樣解釋 ?

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年2月23日 下午 03:01
    版主
  • HScrollBar1.Maximum = 10420

    HScrollBar1.LargeChange = 2600

    10420 - 2600 +1 = 7803 

    已經到頂了

    只能靠程式設定VALUE值

    參考: ScrollBar.Maximum 屬性 備註


    你的意思是說,  HScrollBar1.LargeChange屬性是設定游標窗的寬度是嗎?

    好怪


    None

    我還真看不出來 Alex 在哪邊說了『LargeChange屬性是設定游標窗的寬度』, 個人倒是很有興趣知道為何你會這樣解釋 ?

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    因為有人有提到這個等式

    10420 - 2600 +1 = 7803 

    而本來視窗沒有辦法捲到最右邊似乎是因為我設定了LargeChange屬性,導致HScrollBar的捲頁窗很肥大

    (2600似乎跟HScrollBar的捲頁窗大小有關)

    所以我才有這種想法


    None

    2013年2月26日 上午 04:33
  • 您好,

    網路上是有人這樣說,

    LargeChange     Thumb Length
    -----------  =  ------------  
      Maximum       Track Length

    請參考 Understand .NET Scrollbars

    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2013年2月26日 上午 05:08
  • 請說明你放水平捲軸的容器。

    大部分的容器內建 .AutoScrollxxx 屬性,通常開啟此屬性即可。

    我的經驗是只有做那些超大圖檔,例如衛星照片、地圖等,由於全部載入 Windows 將造成資源崩潰,或極耗記憶體下,才需要用個假的 Scroll 來讓使用者翻轉,而實際圖面不超過容器,不能使用自動捲軸。

    其他情況自動捲軸都能幫你做得很好。


    T.L. Cheng

    2013年3月2日 上午 04:06
    版主