Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Antal rader i textbox

Postades av 2006-04-04 19:13:36 - Niclas Åberg, i forum visual basic - allmänt, Tråden har 7 Kommentarer och lästs av 930 personer

Hejsan.
Jag använder denna koden för att ta fram antalet rader i en textbox:
Private Sub Form_Load()
Dim lngCount As Long
lngCount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
Label1.Caption = lngCount
End Sub

Just nu skriver den bara ut antalet rader i en label, men jag vill att den på något sätt ska loopa igenom fram till det antalet. så att istället för att det står "2" ska det stå:
1
2

Hoppas ni förstår. Detta vill jag också ska hända i realtid, dvs ifall man skriver en ny rad ska denna raden också räknas med utan att något knapptrycks ska behövas.

Någon som vet hur jag kan lösa det här?

Tack på förhand!

MVH Niclas Åberg


Svara

Sv: Antal rader i textbox

Postades av 2006-04-04 22:01:31 - Andreas Hillqvist

Är det det här du söker?

Private Sub Form_Load()
Dim lngCount As Long
Dim i As Long
Dim text As STRING
    lngCount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
    For i = 1 to lngCount
        text = text & i & vbCrLf
    Next
    Label1.Caption = text
End Sub 


Svara

Sv:Antal rader i textbox

Postades av 2006-04-04 22:31:24 - Sven Åke Persson

Andreas kod är helt ok , men vill du ha detta i realtid kan det inte ligga i Form_Load
Mitt förslag är att du tillverkar en Private Sub CountLine()
<code>
Private Sub Form_Activate() ' Obs Activate
Call CountLine
End Sub

Private Sub CountLine()
Dim lngCount As Long
Dim i As Long
Dim sLine As String
lngCount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
For i = 1 to lngCount
sLine = sLine & Str$(i) & vbCrLf
Next
Label1.Caption = sLine
End Sub
</code>
Sen får du kalla på CountLine varje gång du lägger till en ny rad i Text1
Anropet till CountLine gör du väl bäst enl. din förra tråd på raden under "Infogad text"
Call CountLine


Svara

Sv: Antal rader i textbox

Postades av 2006-04-04 22:49:38 - Niclas Åberg

Hej igen och tack för svaren.
Testade Sven Åke Perssons kod med fick då detta felmeddelande:
"Sub or Function not defined"
sökte runt lite men fick inte nåt vettigt svar på varför?

Kan tillägga att felet pekar på "SendMessage"

Vad kan jag ha gjort för fel?

MVH Niclas Åberg


Svara

Sv:Antal rader i textbox

Postades av 2006-04-04 23:10:28 - Niclas Åberg

Såg vad som var felet. Hade glömt lägga till denna:
<code>
Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Const EM_GETLINECOUNT = &HBA
Const EM_GETLINE = &HC4
</code>
såå trött på mig själv :).

Nu fungerar allt strålande! Tack

MVH Niclas Åberg


Svara

Sv: Antal rader i textbox

Postades av 2006-04-04 23:35:12 - Niclas Åberg

Hej igen.
Har återigen stött på ett problem. Vill att radnumrerna ska visas bredvid textboxen, men får det inte till att fungera då textenboxen har en scroll och är skalad efter projektet fönstret. Testade att lägga in label1 bredvid textboxen men när jag testar programet så täcker texboxen hela ytan och labeln syns inte.

Jag vill alltså att radnumrerna ska synas bredvid raderna. och följa med om man t.ex scrollar ner eller förstorar fönstret. Ungefär som om textboxen vore uppdelad i två delar, en för radnumrerna och en för texten.

Tack på förhand!

MVH Niclas Åberg


Svara

Sv:Antal rader i textbox

Postades av 2006-04-04 23:50:45 - Sven Åke Persson

mmm... Tål att fundera på.Det är ju skalningen och horizontal scroll som ställer till det.
Skulle du inte kunna tänka dig att radnummret står först i Text1 längst till vänster.
Dvs skippa Label:n


Svara

Sv: Antal rader i textbox

Postades av 2006-04-05 02:21:36 - Sven Åke Persson

Så här blir mitt förslag till lösning. Skippa Label:n
<code>
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Const EM_GETLINECOUNT = &HBA
Const EM_GETLINE = &HC4

Private Sub Form_Activate() ' Obs Activate
Call CountLine
End Sub

Private Sub CountLine()
Dim lngCount As Long, i As Long, chrCount As Long
Dim sLine As String, buffer As String, retLines As String
buffer = Space$(256)
lngCount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
For i = 0 To lngCount - 2
chrCount = SendMessage(Text1.hwnd, EM_GETLINE, i, ByVal buffer)
retLines = retLines & Str$(i + 1) & " ." & Left$(buffer, chrCount - 1) & vbCrLf
Next
Text1.Text = retLines
End Sub
</code>


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 723
27 958
271 751
634
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies