VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/10/07(Sat) 18:57
投稿者ブンブン
Eメール
URL
タイトル解決(補足)

>
> Changeイベントでコードを書いたらできたようです。
> (行数の取得はこのサイトに載ってます)
>
>  Private Sub Text1_Change()
>
>     Dim rc, cnt
>
>     'キャレットが移動した
>     cnt = SendMessage(Me.Text1.hWnd, EM_GETLINECOUNT, -1, 0) 'テキストの行数を取得する
>     rc = SendMessage(Me.Text1.hWnd, EM_LINEFROMCHAR, -1, 0) + 1 '現在の行番号を取得
>    
>     If cnt > 5 Then
>         Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
>         Text1.SelStart = Len(Text1.Text)
>     End If
>
> end sub
>

補足です。上記は5行までの制限で以下のコードを入れないと
改行が入ってしまいます。ですのでKeyPressイベントに
下記のソースが必要です。

Private Sub Text1_KeyPress(KeyAscii As Integer)

    Dim rc, cnt
    
    cnt = SendMessage(Me.Text1.hWnd, EM_GETLINECOUNT, -1, 0) 'テキストの行数を取得する
    rc = SendMessage(Me.Text1.hWnd, EM_LINEFROMCHAR, -1, 0) + 1 '現在の行番号を取得
    
  '5行以上は改行不可。
    If cnt > 4 Then
        '改行コードが入力されたか
        If KeyAscii = 13 Then
            '入力をキャンセルする
            KeyAscii = 0
        End If
    End If

End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -