VisualFreeBASIC基础——文本框的使用

    文本框常用于文本的输入、显示和编辑。在VFB工具栏上找到文本框控件,选择,拖动到窗口,如图:

VisualFreeBASIC基础——文本框的使用_第1张图片

一、控件属性

1、Name(名称)

    和窗口一样,Name属性是文本框类的实例化,我们可以用【名称.属性/方法】来使用文本框控件。

2、TextScrollBars(滚动条)

    该属性可以设置文本框的滚动条是否显示(必须在MultiLine属性为True的时候),0 - 无滚动条,1 - 垂直滚动条,2 - 水平滚动条,3 - 垂直和水平滚动条。

3、Text(文本)

    该属性设置文本框显示的文本。

4、Enabled(可用)、Visible(显示)

    使能和显示文本框。

5、MaxLength(最大字数)

    该属性设置文本框的最大允许输入字符数。

6、ForeColor(文字色)、BackColor(背景色)

    该属性设置文本框的前景色和背景色。

7、TextAlign(对齐)

    该属性设置文本框内文本的对齐方式,0 - 左对齐,1 - 居中,2 - 右对齐

8、PasswordChar(密码文字)

    该属性在文本框作为密码输入时,设置输入密码显示的字符。

9、Locked(锁住)

    该属性设置文本框是否被锁定,锁定后只读(不可手动修改)。

10、MultiLine(多行编辑)

    该属性设置文本框是否是多行编辑控件,如果为False,则文本框只能单行输入。如果为True,则可以多行输入和显示。

11、AcceptFiles(拖放)

    该属性设置文本框是否接受文件拖放。

二、事件

1、EN_Change事件

Sub Form1_Text2_EN_Change(hWndForm As hWnd, hWndControl As hWnd)  '文本已经被修改(修改前用 EN_UPDATE

End Sub

    只要文本框的文本发生改变就会触发该属性。

2、WM_Char事件

Sub Form1_Text2_WM_Char(hWndForm As hWnd, hWndControl As hWnd, chCharCode As Long, lKeyData As Long)  '字符消息(在 WM_KEYDOWN、WM_KEYUP 消息之后)
   'chCharCode  字符代码,Unicode 编码 
   
End Sub

    输入字符后产生的消息,跟VB6的Keypress消息差不多。

3、Custom事件

Function Form1_Text2_Custom(hWndForm As hWnd, hWndControl As hWnd, wMsg As UInteger, wParam As wParam, lParam As lParam) As LResult  '自定义消息(全部消息),在其它事件处理后才轮到本事件。
   Select Case wMsg 
      Case    

      Case    

      Case 
         
   End Select 
   Function = FALSE ' 若不想系统继续处理此消息,则应返回 TRUE (俗称吃掉消息)。
End Function

    自定义消息,如果需要用到默认消息以外的消息,则需要使用自定义消息来实现。

三、使用示例

    针对文本框属性,做一个示例。包括文本设置、使能,显示、移动、修改字体等。窗体设计如下:其中Text2控件的属性做如下修改:1、TextScrollBars设置为3 - 垂直和水平滚动条,2、Text设置为空,3、MultiLine设置为True,4、AcceptFiles设置为True(代码中有实现文件拖放的例子,可以显示拖放文件的路径)。

VisualFreeBASIC基础——文本框的使用_第2张图片

代码如下:

Sub Form1_WM_Create(hWndForm As hWnd,UserData As Integer)  '完成创建窗口及所有的控件后,此时窗口还未显示。注:自定义消息里 WM_Create 此时还未创建控件和初始赋值。
    Text1.Text = ""              '通过代码来清除显示
    
    Text2.ForeColor = &HFF0000   '设置前景色
    Text2.BackColor = &HA0FFFF   '设置背景色   ’颜色必须在Create事件中设置,而不能在Shown事件中设置,否则显示不正常
End Sub

Sub Form1_Command1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Text1.Text = "12345678"  '设置文本
    Text2.Text = "这是第一行" & Chr(13, 10) & _
                 "这是第二行" & Chr(13, 10) & _
                 "这是第三行" & Chr(13, 10) & _
                 "这是第四行" 
End Sub

Sub Form1_Command2_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    if Text1.Enabled Then    '设置使能
        Text1.Enabled = False
    Else
        Text1.Enabled = True
    End If
End Sub

Sub Form1_Command3_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    if Text1.Visible Then    '设置显示
        Text1.Visible = False
    Else
        Text1.Visible = True
    End If
End Sub

Sub Form1_Command4_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Text2.Locked = True  '锁定文本
End Sub

Sub Form1_Command5_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Static IsMove As BOOLEAN = False  '标志位,是否移动控件,方便恢复控件
    if IsMove = false Then      '移动控件
        IsMove = true
        Text2.Move 10,45,200,100    
    Else
        IsMove = false
        Text2.Move 14,47,409,167
    End If
End Sub

Sub Form1_Command6_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Text1.MaxLength = 22
End Sub

Sub Form1_Command9_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Text2.Font = "微软雅黑,22,0,0,0,0"   ' 格式为:字体,字号,加粗,斜体,下划线,删除线 中间用英文豆号分割
End Sub

Sub Form1_Command10_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Text1.PasswordChar = "*"
End Sub

Function Form1_Text2_Custom(hWndForm As hWnd, hWndControl As hWnd, wMsg As UInteger, wParam As wParam, lParam As lParam) As LResult  '自定义消息(全部消息),在其它事件处理后才轮到本事件。
    Select Case wMsg 
    Case WM_DROPFILES
        dim as HDROP hdrop = cast(HDROP,wParam)
        Dim u As Long = DragQueryFile(hDrop, -1, Null, 0) '获取文件个数 
        If u Then
        Dim nFile As wString * (MAX_PATH + 1), re As Long, i As Long
        For i = 0 To u -1
            re = DragQueryFileW(hDrop, i, @nFile, MAX_PATH) '获取文件名,返回文件名的字符个数
            If re Then
                PrintA nFile  'nFile 包含路径的文件名,这里是宽字符版,要获取 A字符,使用 Dim nFile As zString 和 DragQueryFileA
            End If
        Next
   End If   
    Case else  
    End Select 
    Function = FALSE ' 若不想系统继续处理此消息,则应返回 TRUE (俗称吃掉消息)。
End Function

运行效果:

VisualFreeBASIC基础——文本框的使用_第3张图片

完整例子:

https://github.com/rainheart311/VisualFreeBASIC/tree/master/TextBox

你可能感兴趣的:(FreeBASIC实例工程,freebasic)