Richtextbox in ausgewählter Farbe drucken

  • VB.NET

Es gibt 33 Antworten in diesem Thema. Der letzte Beitrag () ist von Quellcoder02.

    Richtextbox in ausgewählter Farbe drucken

    Hallo an alle :D

    Ich habe ein Kleines Problem beim programmieren eines Schreibprogrammes und zwar: Ich habe schon überall nachgeschaut aber es gibt nichts passendes. Ich möchte die richtextbox in der ausgewählten farbe Drucken.

    Bis jetzt habe ich das alles geschrieben und jetzt soll noch drucken in Ausgewählter farbe und Schriftart (Color Dialog und Font Dialog) dazu kommen.

    Das alles hab ich bis jetzt:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub SpeichernToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernToolStripMenuItem.Click
    3. Dim Speichern As New SaveFileDialog
    4. If Speichern.ShowDialog = Windows.Forms.DialogResult.OK Then
    5. RichTextBox1.SaveFile(Speichern.FileName)
    6. End If
    7. End Sub
    8. Private Sub LadenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LadenToolStripMenuItem.Click
    9. Dim Laden As New OpenFileDialog
    10. If Laden.ShowDialog = Windows.Forms.DialogResult.OK Then
    11. RichTextBox1.LoadFile(Laden.FileName)
    12. End If
    13. End Sub
    14. Private Sub SchriftartToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SchriftartToolStripMenuItem.Click
    15. Dim SA As New FontDialog
    16. If SA.ShowDialog = Windows.Forms.DialogResult.OK Then
    17. RichTextBox1.SelectionFont = SA.Font
    18. End If
    19. End Sub
    20. Private Sub SchriftfarbeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SchriftfarbeToolStripMenuItem.Click
    21. Dim SF As New ColorDialog
    22. If SF.ShowDialog = Windows.Forms.DialogResult.OK Then
    23. RichTextBox1.SelectionColor = SF.Color
    24. End If
    25. End Sub
    26. Private Sub HintergrundfarbeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HintergrundfarbeToolStripMenuItem.Click
    27. Dim HF As New ColorDialog
    28. If HF.ShowDialog = Windows.Forms.DialogResult.OK Then
    29. RichTextBox1.BackColor = HF.Color
    30. End If
    31. End Sub
    32. Private Sub DruckenToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DruckenToolStripMenuItem1.Click
    33. If RichTextBox1.Text = "" Then
    34. MsgBox("Bitte Text eingeben!", MsgBoxStyle.Exclamation)
    35. End If
    36. Dim P As New PrintDialog
    37. If Not RichTextBox1.Text = "" Then
    38. If P.ShowDialog = Windows.Forms.DialogResult.OK Then
    39. PrintDocument1.Print()
    40. End If
    41. End If
    42. End Sub
    43. Private Sub DruckervorschauToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DruckervorschauToolStripMenuItem.Click
    44. If RichTextBox1.Text = "" Then
    45. MsgBox("Bitte Text eingeben!", MsgBoxStyle.Exclamation)
    46. Else
    47. PrintPreviewDialog1.ShowDialog()
    48. End If
    49. End Sub
    50. End Class


    Könnt ihr mir Helfen? Danke im Vorraus schon mal an alle ;)
    Projekte

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Quellcoder02“ ()

    Hmm... Dieser Workshop kommt mir ziemlich kompliziert vor... weil die da so kompliziert schreiben... aber wenn du sagst es klappt werde ich ihn lernen.

    DAnke und LG :D
    Projekte

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Quellcoder02“ ()

    Quellcoder02 schrieb:

    ziemlich kompliziert
    Du musst Dich doch um nix kümmern.
    Das Setzen der Farbe in der RTB kannst Du auch auf die "herkömmliche" Art tun, das ist der RichTextBoxEx egal.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Du musst Dich doch um nix kümmern.


    Doch muss ich weil das leider nicht funktioniert mit der klasse usw. Ich finde auch keine andere methode ich habe den ganzen code kopiert und eingefügt wie es mir gesagt worden is aber es funktioniert nicht. Ich habe eine Klassenbibliothek gemacht und dort den code einfach reinkopiert. 49 Fehler. Könntet ihr mir vllt nochmal weiter helfen? ;(
    Danke im Vorraus

    LG
    Projekte

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Quellcoder02“ ()

    Quellcoder02 schrieb:

    funktioniert nicht
    Kannst Du bitte mal das Projekt posten?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das Klassenprojekt? Also RichtextboxEx

    RichtextboxEx:

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Windows.Forms
    3. Imports System.Drawing
    4. Imports System.Runtime.InteropServices
    5. Imports System.Drawing.Printing
    6. ' An extension to RichTextBox suitable for printing and more
    7. Public Class RichTextBoxEx
    8. Inherits RichTextBox
    9. ' Konstante zum De(Aktivieren) der Bilschirmaktualisierung
    10. ' Fenstersperrung ein-/ausschalten
    11. Private Const WM_SETREDRAW As Integer = &HB
    12. Private iLastFindPos As Integer
    13. <StructLayout(LayoutKind.Sequential)> _
    14. Private Structure STRUCT_RECT
    15. Public left As Int32
    16. Public top As Int32
    17. Public right As Int32
    18. Public bottom As Int32
    19. End Structure
    20. <StructLayout(LayoutKind.Sequential)> _
    21. Private Structure STRUCT_CHARRANGE
    22. Public cpMin As Int32
    23. Public cpMax As Int32
    24. End Structure
    25. <StructLayout(LayoutKind.Sequential)> _
    26. Private Structure STRUCT_FORMATRANGE
    27. Public hdc As IntPtr
    28. Public hdcTarget As IntPtr
    29. Public rc As STRUCT_RECT
    30. Public rcPage As STRUCT_RECT
    31. Public chrg As STRUCT_CHARRANGE
    32. End Structure
    33. <StructLayout(LayoutKind.Sequential)> _
    34. Private Structure STRUCT_CHARFORMAT
    35. Public cbSize As Integer
    36. Public dwMask As UInt32
    37. Public dwEffects As UInt32
    38. Public yHeight As Int32
    39. Public yOffset As Int32
    40. Public crTextColor As Int32
    41. Public bCharSet As Byte
    42. Public bPitchAndFamily As Byte
    43. <MarshalAs(UnmanagedType.ByValArray, SizeConst:=32)> _
    44. Public szFaceName() As Char
    45. End Structure
    46. <DllImport("user32.dll")> _
    47. Private Shared Function SendMessage( _
    48. ByVal hWnd As IntPtr, _
    49. ByVal msg As Int32, _
    50. ByVal wParam As Int32, _
    51. ByVal lParam As IntPtr) As Int32
    52. End Function
    53. ' Windows Message defines
    54. Private Const WM_USER As Int32 = &H400&
    55. Private Const EM_FORMATRANGE As Int32 = WM_USER + 57
    56. Private Const EM_GETCHARFORMAT As Int32 = WM_USER + 58
    57. Private Const EM_SETCHARFORMAT As Int32 = WM_USER + 68
    58. ' Defines for EM_GETCHARFORMAT/EM_SETCHARFORMAT
    59. Private SCF_SELECTION As Int32 = &H1&
    60. Private SCF_WORD As Int32 = &H2&
    61. Private SCF_ALL As Int32 = &H4&
    62. ' Defines for STRUCT_CHARFORMAT member dwMask
    63. ' (Long because UInt32 is not an intrinsic type)
    64. Private Const CFM_BOLD As Long = &H1&
    65. Private Const CFM_ITALIC As Long = &H2&
    66. Private Const CFM_UNDERLINE As Long = &H4&
    67. Private Const CFM_STRIKEOUT As Long = &H8&
    68. Private Const CFM_PROTECTED As Long = &H10&
    69. Private Const CFM_LINK As Long = &H20&
    70. Private Const CFM_SIZE As Long = &H80000000&
    71. Private Const CFM_COLOR As Long = &H40000000&
    72. Private Const CFM_FACE As Long = &H20000000&
    73. Private Const CFM_OFFSET As Long = &H10000000&
    74. Private Const CFM_CHARSET As Long = &H8000000&
    75. ' Defines for STRUCT_CHARFORMAT member dwEffects
    76. Private Const CFE_BOLD As Long = &H1&
    77. Private Const CFE_ITALIC As Long = &H2&
    78. Private Const CFE_UNDERLINE As Long = &H4&
    79. Private Const CFE_STRIKEOUT As Long = &H8&
    80. Private Const CFE_PROTECTED As Long = &H10&
    81. Private Const CFE_LINK As Long = &H20&
    82. Private Const CFE_AUTOCOLOR As Long = &H40000000&
    83. ' Calculate or render the contents of our RichTextBox for printing
    84. '
    85. ' Parameters:
    86. ' "measureOnly": If true, only the calculation is performed,
    87. ' otherwise the text is rendered as well
    88. ' "e": The PrintPageEventArgs object from the PrintPage event
    89. ' "charFrom": Index of first character to be printed
    90. ' "charTo": Index of last character to be printed
    91. '
    92. ' Return value:
    93. ' (Index of last character that fitted on the page) + 1
    94. Public Function FormatRange(ByVal measureOnly As Boolean, _
    95. ByVal e As PrintPageEventArgs, _
    96. ByVal charFrom As Integer, _
    97. ByVal charTo As Integer) As Integer
    98. ' Specify which characters to print
    99. Dim cr As STRUCT_CHARRANGE
    100. cr.cpMin = charFrom
    101. cr.cpMax = charTo
    102. ' Specify the area inside page margins
    103. Dim rc As STRUCT_RECT
    104. With e.MarginBounds
    105. rc.top = HundredthInchToTwips(.Top)
    106. rc.bottom = HundredthInchToTwips(.Bottom)
    107. rc.left = HundredthInchToTwips(.Left)
    108. rc.right = HundredthInchToTwips(.Right)
    109. End With
    110. ' Specify the page area
    111. Dim rcPage As STRUCT_RECT
    112. With e.PageBounds
    113. rcPage.top = HundredthInchToTwips(.Top)
    114. rcPage.bottom = HundredthInchToTwips(.Bottom)
    115. rcPage.left = HundredthInchToTwips(.Left)
    116. rcPage.right = HundredthInchToTwips(.Right)
    117. End With
    118. ' Get device context of output device
    119. Dim hdc As IntPtr
    120. hdc = e.Graphics.GetHdc()
    121. ' Fill in the FORMATRANGE structure
    122. Dim fr As STRUCT_FORMATRANGE
    123. fr.chrg = cr
    124. fr.hdc = hdc
    125. fr.hdcTarget = hdc
    126. fr.rc = rc
    127. fr.rcPage = rcPage
    128. ' Non-Zero wParam means render, Zero means measure
    129. Dim wParam As Int32
    130. If measureOnly Then
    131. wParam = 0
    132. Else
    133. wParam = 1
    134. End If
    135. ' Allocate memory for the FORMATRANGE struct and
    136. ' copy the contents of our struct to this memory
    137. Dim lParam As IntPtr
    138. lParam = Marshal.AllocCoTaskMem(Marshal.SizeOf(fr))
    139. Marshal.StructureToPtr(fr, lParam, False)
    140. ' Send the actual Win32 message
    141. Dim res As Integer
    142. res = SendMessage(Handle, EM_FORMATRANGE, wParam, lParam)
    143. ' Free allocated memory
    144. Marshal.FreeCoTaskMem(lParam)
    145. ' and release the device context
    146. e.Graphics.ReleaseHdc(hdc)
    147. Return res
    148. End Function
    149. ' Convert between 1/100 inch (unit used by the .NET framework)
    150. ' and twips (1/1440 inch, used by Win32 API calls)
    151. '
    152. ' Parameter "n": Value in 1/100 inch
    153. ' Return value: Value in twips
    154. Private Function HundredthInchToTwips(ByVal n As Integer) As Int32
    155. Return Convert.ToInt32(n * 14.4)
    156. End Function
    157. ' Free cached data from rich edit control after printing
    158. Public Sub FormatRangeDone()
    159. Dim lParam As New IntPtr(0)
    160. SendMessage(Handle, EM_FORMATRANGE, 0, lParam)
    161. End Sub
    162. ''' <summary>
    163. ''' Setzt die Schriftart für den selektierten Text
    164. ''' </summary>
    165. ''' <param name="face">Name der Schriftart</param>
    166. ''' <returns></returns>
    167. ''' <remarks></remarks>
    168. Public Function SetSelectionFont(ByVal face As String) As Boolean
    169. Dim cf As New STRUCT_CHARFORMAT()
    170. cf.cbSize = Marshal.SizeOf(cf)
    171. cf.dwMask = Convert.ToUInt32(CFM_FACE)
    172. ' ReDim face name to relevant size
    173. ReDim cf.szFaceName(32)
    174. face.CopyTo(0, cf.szFaceName, 0, Math.Min(31, face.Length))
    175. Dim lParam As IntPtr
    176. lParam = Marshal.AllocCoTaskMem(Marshal.SizeOf(cf))
    177. Marshal.StructureToPtr(cf, lParam, False)
    178. Dim res As Integer
    179. res = SendMessage(Handle, EM_SETCHARFORMAT, SCF_SELECTION, lParam)
    180. Return (res = 0)
    181. End Function
    182. ''' <summary>
    183. ''' Setzt die Schriftgrösse des selektierten Textees
    184. ''' </summary>
    185. ''' <param name="size">Schriftgrösse</param>
    186. ''' <returns></returns>
    187. ''' <remarks></remarks>
    188. Public Function SetSelectionSize(ByVal size As Integer) As Boolean
    189. Dim cf As New STRUCT_CHARFORMAT()
    190. cf.cbSize = Marshal.SizeOf(cf)
    191. cf.dwMask = Convert.ToUInt32(CFM_SIZE)
    192. ' yHeight is in 1/20 pt
    193. cf.yHeight = size * 20
    194. Dim lParam As IntPtr
    195. lParam = Marshal.AllocCoTaskMem(Marshal.SizeOf(cf))
    196. Marshal.StructureToPtr(cf, lParam, False)
    197. Dim res As Integer
    198. res = SendMessage(Handle, EM_SETCHARFORMAT, SCF_SELECTION, lParam)
    199. Return (res = 0)
    200. End Function
    201. ''' <summary>
    202. ''' Setzt Fettdruck für selektierten Text oder hebt diesen auf
    203. ''' </summary>
    204. ''' <param name="bold">True = Fettdruck; False = normal</param>
    205. ''' <returns></returns>
    206. ''' <remarks></remarks>
    207. Public Function SetSelectionBold(ByVal bold As Boolean) As Boolean
    208. If (bold) Then
    209. Return SetSelectionStyle(CFM_BOLD, CFE_BOLD)
    210. Else
    211. Return SetSelectionStyle(CFM_BOLD, 0)
    212. End If
    213. End Function
    214. ''' <summary>
    215. ''' Kurssiv-Schrift für selektierten Text setzen oder aufheben
    216. ''' </summary>
    217. ''' <param name="italic">True = kursiv; False = nicht kursiv</param>
    218. ''' <returns></returns>
    219. ''' <remarks></remarks>
    220. Public Function SetSelectionItalic(ByVal italic As Boolean) As Boolean
    221. If (italic) Then
    222. Return SetSelectionStyle(CFM_ITALIC, CFE_ITALIC)
    223. Else
    224. Return SetSelectionStyle(CFM_ITALIC, 0)
    225. End If
    226. End Function
    227. ''' <summary>
    228. ''' Unterstreicht den selektierten Text oder hebt diese auf
    229. ''' </summary>
    230. ''' <param name="underlined">True = unterstrichen;
    231. ''' False = nicht unterstrichen</param>
    232. ''' <returns></returns>
    233. ''' <remarks></remarks>
    234. Public Function SetSelectionUnderlined( _
    235. ByVal underlined As Boolean) As Boolean
    236. If (underlined) Then
    237. Return SetSelectionStyle(CFM_UNDERLINE, CFE_UNDERLINE)
    238. Else
    239. Return SetSelectionStyle(CFM_UNDERLINE, 0)
    240. End If
    241. End Function
    242. Private Function SetSelectionStyle(ByVal mask As Int32, _
    243. ByVal effect As Int32) As Boolean
    244. Dim cf As New STRUCT_CHARFORMAT()
    245. cf.cbSize = Marshal.SizeOf(cf)
    246. cf.dwMask = Convert.ToUInt32(mask)
    247. cf.dwEffects = Convert.ToUInt32(effect)
    248. Dim lParam As IntPtr
    249. lParam = Marshal.AllocCoTaskMem(Marshal.SizeOf(cf))
    250. Marshal.StructureToPtr(cf, lParam, False)
    251. Dim res As Integer
    252. res = SendMessage(Handle, EM_SETCHARFORMAT, SCF_SELECTION, lParam)
    253. Return (res = 0)
    254. End Function
    255. ''' <summary>
    256. ''' Pausiert die Bildschirmaktualisierung
    257. ''' (Um die Bildschirmaktualisierung fortzusetzen,
    258. ''' muss ResumeRefresh aufgerufen werden)
    259. ''' </summary>
    260. ''' <remarks></remarks>
    261. Public Sub StopRefresh()
    262. ' Das Neuzeichnen von Elementen in unterbinden
    263. Call SendMessage(Handle, WM_SETREDRAW, 0, 0)
    264. End Sub
    265. ''' <summary>
    266. ''' Aktiviert die Bildschrimaktualisierung wieder
    267. ''' (wenn diese zuvor über StopRefresh pausiert wurde)
    268. ''' </summary>
    269. ''' <remarks></remarks>
    270. Public Sub ResumeRefresh()
    271. ' Das Neuzeichnen von Elementen wieder zulassen
    272. Call SendMessage(Me.Handle, WM_SETREDRAW, 1, 0)
    273. Refresh()
    274. End Sub
    275. ''' <summary>
    276. ''' Hebt gefundene Zeichenketten oder Wörter mit einer
    277. ''' Hintergrundfarbe hervor (nicht bei langen Texten empfohlen)
    278. ''' </summary>
    279. ''' <param name="FindWhat">Zu markierender Text oder Wort</param>
    280. ''' <param name="BackColor">Hintergrundfarbe die gesetzt werden soll</param>
    281. ''' <param name="MatchCase">Gibt an ob Gross-/Kleinschreibung
    282. ''' beachtet werden soll</param>
    283. ''' <param name="MatchWholeWord">Wenn True, wird nur nach
    284. ''' ganzen Wörtern gesucht</param>
    285. ''' <param name="MaxFind">Begrenzt die Anzahl der zu markierenden
    286. ''' Fundstellen auf die angegebene Anzahl, wenn der Wert nicht 0 ist</param>
    287. ''' <remarks></remarks>
    288. Public Sub Highlight(ByVal FindWhat As String, _
    289. ByVal BackColor As Color, _
    290. ByVal MatchCase As Boolean, _
    291. ByVal MatchWholeWord As Boolean, _
    292. Optional ByVal MaxFind As Integer = 0)
    293. ' Neuzeichnen unterbinden
    294. StopRefresh()
    295. SuspendLayout()
    296. Dim SelStart As Integer = SelectionStart
    297. Dim SelLength As Integer = SelectionLength
    298. Dim StartFrom As Integer = 0
    299. Dim Length As Integer = FindWhat.Length
    300. Dim Finds As RichTextBoxFinds
    301. Dim i As Integer = 0
    302. ' Flags für die Suche setzen
    303. If MatchCase Then Finds = Finds Or RichTextBoxFinds.MatchCase
    304. If MatchWholeWord Then Finds = Finds Or RichTextBoxFinds.WholeWord
    305. ' Kompletten Text durchsuchen
    306. While Find(FindWhat, StartFrom, Finds) > -1
    307. If MaxFind > 0 And i = MaxFind Then Exit While
    308. SelectionBackColor = BackColor
    309. ' Start auf Fundstelle setzen
    310. StartFrom = SelectionStart + SelectionLength
    311. i += 1
    312. End While
    313. SelectionStart = SelStart
    314. SelectionLength = SelLength
    315. ResumeLayout()
    316. ' Neuzeichnen aktivieren
    317. ResumeRefresh()
    318. End Sub
    319. ''' <summary>
    320. ''' Löscht die Hintergundfarbe für den markierten Bereich
    321. ''' oder für das komplette Dokument
    322. ''' </summary>
    323. ''' <param name="ClearAll">Wenn der Wert True ist, wird die
    324. ''' Hintergrundfarbe für das komplette Dokument gelöscht
    325. ''' (nicht nur Selektion)</param>
    326. ''' <remarks></remarks>
    327. Public Sub ClearBackColor(Optional ByVal ClearAll As Boolean = True)
    328. ' Neuzeichnen unterbinden
    329. StopRefresh()
    330. Me.SuspendLayout()
    331. Dim SelStart As Integer = SelectionStart
    332. Dim SelLength As Integer = SelectionLength
    333. If ClearAll Then SelectAll()
    334. SelectionBackColor = BackColor
    335. SelectionStart = SelStart
    336. SelectionLength = SelLength
    337. ResumeLayout()
    338. ' Neuzeichnen aktivieren
    339. ResumeRefresh()
    340. End Sub
    341. ''' <summary>
    342. ''' Markiert den gefundenen Text (Setzt den Fokus auf die Fundstelle)
    343. ''' </summary>
    344. ''' <param name="FindWhat">Zeichenkette oder Wort das
    345. ''' gesucht werden soll</param>
    346. ''' <param name="MatchCase">Gibt an ob Gross-/Kleinschreibung
    347. ''' berücksichtigt werden soll (False=Ignorieren)</param>
    348. ''' <param name="MatchWholeWord">Wenn der Wert True ist, wird nur
    349. ''' nach genzen Wörtern gesucht</param>
    350. ''' <param name="StartFrom">Gibt die Position an ab der gesucht
    351. ''' werden soll. Wenn nichts übergeben wird, wird ab der aktuellen
    352. ''' Selektion gesucht</param>
    353. ''' <param name="bFindBackwords">Wenn der Wert True ist, wird von
    354. ''' unten nach oben anstatt von Oben nach Unten gesucht</param>
    355. ''' <remarks>Wenn das Ende des Dokuments erreicht ist, wird wieder
    356. ''' vom Anfang gesucht</remarks>
    357. Public Sub SelectText(ByVal FindWhat As String, _
    358. ByVal MatchCase As Boolean, _
    359. ByVal MatchWholeWord As Boolean, _
    360. Optional ByVal StartFrom As Integer = -1, _
    361. Optional ByVal bFindBackwords As Boolean = False)
    362. Dim Length As Integer = FindWhat.Length
    363. Dim Finds As RichTextBoxFinds
    364. Dim iFindPos As Integer
    365. ' Flags für die Suche setzen
    366. If MatchCase Then Finds = Finds Or RichTextBoxFinds.MatchCase
    367. If MatchWholeWord Then Finds = Finds Or RichTextBoxFinds.WholeWord
    368. ' Startposition festlegen
    369. If bFindBackwords = False Then
    370. StartFrom = SelectionStart + SelectionLength
    371. Else
    372. StartFrom = SelectionStart - 1
    373. End If
    374. If bFindBackwords = False Then
    375. iFindPos = Find(FindWhat, StartFrom, Finds)
    376. Else
    377. iFindPos = Find(FindWhat, 0, StartFrom, _
    378. Finds Or RichTextBoxFinds.Reverse)
    379. End If
    380. ' Wenn Ende ereicht ist, dann von Anfang an wieder suchen
    381. If iFindPos < 0 And StartFrom > 0 Then
    382. StartFrom = 0
    383. iFindPos = Find(FindWhat, StartFrom, Finds)
    384. End If
    385. ' Fundstelle markieren
    386. If iFindPos >= 0 Then
    387. Me.Select()
    388. If bFindBackwords = False Then
    389. Me.Select(Find(FindWhat, StartFrom, Finds), Length)
    390. Else
    391. Me.Select(Find(FindWhat, 0, StartFrom, _
    392. Finds Or RichTextBoxFinds.Reverse), Length)
    393. End If
    394. End If
    395. End Sub
    396. End Class


    Ja und ich weiß jetzt nicht mehr weiter weil da 49 fehler sind... Deswegen hab ich auch garnicht mehr weiter gemacht also bitte... hilfe
    Projekte

    Quellcoder02 schrieb:

    Klassenprojekt?
    Projekt, nicht aber Klasse.
    Projekt bereinigen, Explorer, zippen, anhängen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Sag mir welches meinst du Mein Schreibprogramm oder Richtextbox ex den Dreck da. Sag mir welches und ich werde es Anhängen. Ich weiß ich bin echt dumm aber es is noch kein meister vom himmel gefallen.

    LG
    Projekte

    Quellcoder02 schrieb:

    den Dreck da
    womit Du den Inhalt einer RTB farbig drucken willst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das problem ist das ich nicht weiß mit was ich die RTBin farbe drucken soll. Ich geb dir mal mein ganzen projekt als anhang dazu dann kannst dus dir ansehen und vllt mal da was weiter bringen im thema farbe drucken.
    Dateien
    Projekte

    Quellcoder02 schrieb:

    das ich nicht weiß
    Davon gibt es viel.
    Füge diesem Projekt die RichTextBoxEx als VB-Datei hinzu.
    Kompiliere das ganze.
    Ersetze in Deiner GUI die RichTextBox durch eine RichTextBoxEx.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Quellcoder02 schrieb:

    Und warum werden bei mir in dem RichtextboxEx code so viele Sachen unterstrichen?
    Der Code von RichtextboxEx ist in deinem Anhang nicht zu finden, also du hast die Klasse RichtextboxEx nicht zugefügt...
    Im Allgemeinen sieht dein Projekt zu Tode editiert aus - und Option Strict On einstellen
    Write It Down! ist kein gültiger Projektname - verwende Namen ohne Leer- und Sonderzeichen.
    Versuche das zu machen, was dir Rod schon empfohlen hat (entferne deine alte RTB von der Form und füge die neue RichttextboxEx hinzu. Oder besser noch beginne dein Projekt von vorne...)

    Quellcoder02 schrieb:

    Und wie
    Über welche Programmiererfahrung verfügst Du?
    1. Die Namensgebung in Deinem Projekt ist eine Katastrophe!
      Leerzeichen und "!" im Projektnamen sind ein NoGo.
      Das Projekt braucht einen Main NameSpace.
      Räume Deinj Projekt auf, so dass es kompiliert.
    2. Füge die RichTextBoxEx als Datei Deinem Projekt hinzu:

    3. Füge die Print-Variablen und Print-Handler hinzu, die Du im Link in Post #2 von @VB1963 findest.
    4. Und: Für ein lokalisiertes Projekt isses doch noch ein wenig zu früh.
    5. Feddich.

    Dateien
    • WriteItDown.zip

      (45,83 kB, 113 mal heruntergeladen, zuletzt: )
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also nur das du es weißt. Ich bin 12 Jahre alt und bin komplett neu im Programmieren drinnen. Das soll keine Entschuldigung sein, aber ich denke man lernt aus fehlern und wenn man so neu in sowas ist, ist es auch nicht gerade leicht. Ich meine du warst auch mal Anfänger und ich finde dafür das ich anfänger bin, hab ich schon ein bisschen was drauf. Zweitens habe ich nicht gewusst das man sowas mehrsprachig machen muss. Ich dachte bisschen code hier und da und fertig aber anscheinend nicht. Trotzdem Danke und falls nochhmal n Problem ist werde ich weiter fragen!

    Achja Problem: Die zip datei funktioniert nicht in meinem VB. Kannst du sie vllt nochmal schicken das die auch funktioniert? Danke

    LG :D
    Projekte

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Quellcoder02“ ()

    Quellcoder02 schrieb:

    das man sowas mehrsprachig machen muss
    Falsch.
    Das von Dir gepostete Projekt war mehrsprachig eingestellt, das hab ich rausgenommen. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Quellcoder02 schrieb:

    nochmal posten
    siehe Post #15
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!