نمایش نتایج 1 تا 14 از 14

نام تاپیک: نوشتن یا داشتن یه RichTextBox قدرتمند (شبیه Word)

  1. #1

    Cool نوشتن یا داشتن یه RichTextBox قدرتمند (شبیه Word)

    با عرض سلام خدمت دوستان گرامی
    ببخشید . کسی از دوستان یه مثال خوب از RichTextBox نداره .
    آخه نوشتنش یکم دردسر داره .
    خودم سعی کردم بنوسیم . ولی مشکل دارم .
    خودتون امتحان کنید ببینید (مثلا هنگامی که میخواهیم متنی که هر تیکه اش دارای یه ظاهری است را Bold کنیم بقیه خواص از بین می روند ) .
    چون کل اون قسمت Style جدید میگیره .
    این یه نمونه از مشکلاتشه .

    در ضمن یه ColorPicker هم میخوام . برای تغییر رنگ متن و پس زمینه .
    ممنونم راهنمایی کنید .
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar RTB.rar‏ (59.0 کیلوبایت, 193 دیدار)

  2. #2
    کاربر دائمی آواتار habedijoo
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    538
    سلام
    اینو ببین . اگر کاملتر گیرم اومد برات آپلود میکنم . ( با 2003 )
    فایل های ضمیمه فایل های ضمیمه

  3. #3
    خیلی خوب بود .
    فقط Toolbar نداره (بالاخره یه ضعفه) .

    آخه چرا این همه Editor برای برنامه های تحت وب هست
    مثلا FreeTextBox , ...

    ولی برای برنامه های تحت ویندوز کم گیر میاد (یا اصلا نیست)

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    اینم یک کلاس برای syntax highlighting

     
    Public Class SyntaxRTB
    Inherits System.Windows.Forms.RichTextBox
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

    Private Declare Function LockWindowUpdate Lib "user32" (ByVal hWnd As Integer) As Integer
    Private _SyntaxHighlight_CaseSensitive As Boolean = False
    Private Words As New DataTable
    'Contains Windows Messages for the SendMessage API call
    Private Enum EditMessages
    LineIndex = 187
    LineFromChar = 201
    GetFirstVisibleLine = 206
    CharFromPos = 215
    PosFromChar = 1062
    End Enum
    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
    ColorVisibleLines()
    End Sub
    Public Sub ColorRtb()
    Dim FirstVisibleChar As Integer
    Dim i As Integer = 0
    While i < Me.Lines.Length
    FirstVisibleChar = GetCharFromLineIndex(i)
    ColorLineNumber(i, FirstVisibleChar)
    i += 1
    End While
    End Sub
    Public Sub ColorVisibleLines()
    Dim FirstLine As Integer = FirstVisibleLine()
    Dim LastLine As Integer = LastVisibleLine()
    Dim FirstVisibleChar As Integer
    If (FirstLine = 0) And (LastLine = 0) Then
    'If there is no text it will error, so exit the sub
    Exit Sub
    Else
    While FirstLine < LastLine
    FirstVisibleChar = GetCharFromLineIndex(FirstLine)
    ColorLineNumber(FirstLine, FirstVisibleChar)
    FirstLine += 1
    End While
    End If
    End Sub
    Public Sub ColorLineNumber(ByVal LineIndex As Integer, ByVal lStart As Integer)
    Dim i As Integer = 0
    Dim Instance As Integer
    Dim LeadingChar, TrailingChar As String
    Dim SelectionAt As Integer = Me.SelectionStart
    Dim MyRow As DataRow
    Dim Line() As String, MyI As Integer, MyStr As String
    ' Lock the update
    LockWindowUpdate(Me.Handle.ToInt32)
    MyI = lStart
    If CaseSensitive Then
    Line = Split(Me.Lines(LineIndex).ToString, " ")
    Else
    Line = Split(Me.Lines(LineIndex).ToLower, " ")
    End If
    For Each MyStr In Line
    Me.SelectionStart = MyI
    Me.SelectionLength = MyStr.Length
    If Words.Rows.Contains(MyStr) Then
    MyRow = Words.Rows.Find(MyStr)
    If (Not CaseSensitive) Or (CaseSensitive And MyRow("Word") = MyStr) Then
    Me.SelectionColor = Color.FromName(MyRow("Color"))
    End If
    Else
    Me.SelectionColor = Color.Black
    End If
    MyI += MyStr.Length + 1
    Next
    ' Restore the selectionstart
    Me.SelectionStart = SelectionAt
    Me.SelectionLength = 0
    Me.SelectionColor = Color.Black
    ' Unlock the update
    LockWindowUpdate(0)
    End Sub
    Public Function GetCharFromLineIndex(ByVal LineIndex As Integer) As Integer
    Return SendMessage(Me.Handle, EditMessages.LineIndex, LineIndex, 0)
    End Function
    Public Function FirstVisibleLine() As Integer
    Return SendMessage(Me.Handle, EditMessages.GetFirstVisibleLine, 0, 0)
    End Function
    Public Function LastVisibleLine() As Integer
    Dim LastLine As Integer = FirstVisibleLine() + (Me.Height / Me.Font.Height)
    If LastLine > Me.Lines.Length Or LastLine = 0 Then
    LastLine = Me.Lines.Length
    End If
    Return LastLine
    End Function
    Public Sub New()
    Dim MyRow As DataRow
    Dim arrKeyWords() As String, strKW As String
    Me.AcceptsTab = True
    ''Load all the keywords and the colors to make them
    Words.Columns.Add("Word")
    Words.PrimaryKey = New DataColumn() {Words.Columns(0)}
    Words.Columns.Add("Color")
    arrKeyWords = New String() {"select", "insert", "delete", _
    "truncate", "from", "where", "into", "inner", "update", _
    "outer", "on", "is", "declare", "set", "use", "values", "as", _
    "order", "by", "drop", "view", "go", "trigger", "cube", _
    "binary", "varbinary", "image", "char", "varchar", "text", _
    "datetime", "smalldatetime", "decimal", "numeric", "float", _
    "real", "bigint", "int", "smallint", "tinyint", "money", _
    "smallmoney", "bit", "cursor", "timestamp", "uniqueidentifier", _
    "sql_variant", "table", "nchar", "nvarchar", "ntext", "left", _
    "right", "like","and","all","in","null","join","not","o r"}
    For Each strKW In arrKeyWords
    MyRow = Words.NewRow()
    MyRow("Word") = strKW
    MyRow("Color") = Color.LightCoral.Name
    Words.Rows.Add(MyRow)
    Next
    End Sub

    Public Property CaseSensitive() As Boolean
    Get
    Return _SyntaxHighlight_CaseSensitive
    End Get
    Set(ByVal Value As Boolean)
    _SyntaxHighlight_CaseSensitive = Value
    End Set
    End Property

    End Class

  5. #5
    سلام
    آقا بابک میشه یه کم توضیح یا یه مثال استفاده از کلاستونم داشته باشیم؟

    با تشکر

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    اینم چند تا نمونه با چند مثال
    فایل های ضمیمه فایل های ضمیمه

  7. #7

    Red face یه ادیتور قوی

    آقای زواری . ممنون

    این تصویر رو ببینید (مربوط به Word 2003 است .)

    من میخوام ادیتوری داشته باشم که این گزینه ها را داشته باشه (دورشون قرمزه)

    از نظر ابزار یه چیزی شبیه ادیتورهایی که تحت وب استفاده میشه (مثلا FreeTextBox)

    ولی تحت ویندوز و این دفعه با RichTextBox . ممنونم .
    عکس های ضمیمه عکس های ضمیمه

  8. #8
    راستش خودمم میتونم درست کنم .

    ولی مشکلی که دارم اینه که چون برای هر بار تغییر فونت باید یه استایل جدید
    تعریف کنم استایل قبلی از بین میرود .
    هر چند که خاصیت های جدید را به خاصیت های قبلی اضافه میکنم ولی برای مثال
    اگه بخوام متنی رو که هم یه تیکه ی Bold دارد و هم یه تیکه ی UnderLine دارد را بهش
    خاصیت Italic هم اضافه کنم باید به کل متن یه استایل جدید بدم و اون تفاوتها از بین میره

    ممنونم که دوستان کمک کنند .

  9. #9
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    قبل دانلود هماهنگی کنیم که برای مسائل فول کردن و . . .
    http://www.textcontrol.com/products/dotnet/

  10. #10
    ببخشید.
    این که لینکشو دادین خیلی توپه . یعنی محشره

    ولی مثل اینکه مجانی نیست (فقط ورژن Trial داره)
    شما لینکی ازش دارین ؟

    خیلی ممنون

  11. #11
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    محسن جان الگوریتمش اینه
    اول Trial رو بگیر
    دوم یک مدت صبر کن
    سوم دنبال کرکش در سایتهای دیگه بگرد
    اگر پیدا نکردی برو قدم دوم
    اگر پیدا کردی استفاده کن آنگاه به ما هم یک ندا بده

  12. #12
    نقل قول نوشته شده توسط بابک زواری
    محسن جان الگوریتمش اینه
    اول Trial رو بگیر
    دوم یک مدت صبر کن
    سوم دنبال کرکش در سایتهای دیگه بگرد
    اگر پیدا نکردی برو قدم دوم
    اگر پیدا کردی استفاده کن آنگاه به ما هم یک ندا بده
    --------------------------------------------------
    D-:
    --------------------------------------------------

  13. #13
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    اینم بد نیست
    pinEdit - DHTML/ActiveX/.NET/Java - V4.1

  14. #14
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    در ضمن منم دنبالش هستم اگر برای VS2005 گیرم اومد بهتون اطلاع میدم

تاپیک های مشابه

  1. نحوه قرار دادن عکس متحرک gif در richtextbox
    نوشته شده توسط roya_123 در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: جمعه 22 آذر 1387, 15:00 عصر
  2. اشکال از لود کردن یک richtextbox از فایل word
    نوشته شده توسط Maryam_y_m در بخش VB.NET
    پاسخ: 3
    آخرین پست: پنج شنبه 18 آبان 1385, 17:23 عصر
  3. تقسیم بندی یه RichTextBox به قسمت های مختلف
    نوشته شده توسط vbapr2005 در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 14 آذر 1384, 15:13 عصر
  4. رسم اشکال هندسی در RichTextBox
    نوشته شده توسط vbapr2005 در بخش VB.NET
    پاسخ: 0
    آخرین پست: یک شنبه 13 آذر 1384, 01:05 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •