0

フォームのタイトル バーのテキストをスクロールする簡単なコードを作成しました。テキストの長さが 159 に達するまで正常に動作しています。その後、テキストはタイトル バーで切り取られます。タイトル バーの最後まで到達せず、タイトル バーの途中で途切れます。なぜこれが起こるのですか? tempheaderフォームのロード時に me.text 値を格納する変数です。

これは、間隔が 100 のタイマー ティック イベントのコードです。

 Me.Text = " " & Me.Text
        If Len(Me.Text) = 159 Then Me.Text = tempheader
4

2 に答える 2

0

Lolこれは古い投稿であることは知っていますが、何か他のものを探しているときに見つけましたとにかく、テキストをスクロールするためにカスタムタイトルバーを使用しています. 空のフォームを作成し、ダブルクリックしてすべてのコードを削除し、以下からコードを追加します。戻ってプロジェクトからフォームを削除し、dll として保存します。インポートしてツールバーに追加するだけで、どのプロジェクトでも使用できます。


Imports System.Drawing
Public Class CustomTitlebar
Inherits Windows.Forms.Panel
  Public Sub ColourTitleText(ByRef panelBG As Color, ByRef txtBG As Color, ByRef txtFC As Color)
    Dim textbox1 As New Windows.Forms.TextBox
    Dim Psize As New Point(26, 200)
    Me.Size = New Point(26, 200)
    Me.BackColor = panelBG
    Me.BorderStyle = Windows.Forms.BorderStyle.None
    Me.Dock = Windows.Forms.DockStyle.Top
    Me.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
    textbox1.Name = "Textbox1"
    textbox1.BackColor = txtBG
    If Not txtFC = Nothing Then
        textbox1.ForeColor = txtFC
    End If
    textbox1.BorderStyle = Windows.Forms.BorderStyle.None
    textbox1.Size = New Size(Psize.X - 4, 20)
    textbox1.Location = New Point(3, 3)
    textbox1.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
    textbox1.Multiline = False
    textbox1.Text = "Coded by tHE_alCHMist 2010"
    Me.Controls.Add(textbox1)
  End Sub
End Class

これをタイマーに入れます"CustomTitlebar1.Text = MarqueeLeft(CustomTitlebar1.Text)"


そして、この関数をどこかに置きます

Public Function MarqueeLeft(ByVal Text As String)
    Dim Str1 As String = Text.Remove(0, 1)
    Dim Str2 As String = Text(0)
    Return Str1 & Str2
End Function

最後に、フォームの上部にドッキングすることを忘れないでください。このコードが役立つことを願っています。

于 2016-12-21T05:50:54.590 に答える