none
יצירת טבלה ב- rich text box vb2010 RRS feed

  • שאלה

  • היי אני מנסה לתכנת טבלה ב - richtextbox כך שבזמן הרצת התוכית המשתמש קובע כמה שורות וכמה עמודות הוא רוצה דומה למה שיש בוורד מישהו יכול להגיד לי איך אני עושה את זה 
    אני חושב שצריך להיות לולאה בתוך לולאה בתוכנית אני לא בטוח בזה 
    אני משתמש ב- vb 2010 
    אשמח לעזרה


    • נערך על-ידי zionsh יום שלישי 03 יולי 2012 08:32
    יום שלישי 03 יולי 2012 07:04

תשובות

  •        Dim rtf As New StringBuilder()
            Dim rtf2 As New StringBuilder()
            Dim rows As Integer
            Dim cols As Integer
            rtf.Append("{\rtf1")
            Dim i_cols As Integer
            Dim i_rows As Integer
            If (Integer.TryParse(TextBox1.Text, cols)) Then
                If (Integer.TryParse(TextBox2.Text, rows)) Then
    
                    For i_rows = 0 To rows
                        rtf.Append("\trowd")
                        For i_cols = 0 To cols
                            rtf.Append(" \cellx")
                            rtf.Append((i_cols + 1) * 1000)
                            rtf2.Append(" \cell")
                        Next
    
                        rtf.Append(rtf2.ToString())
                        rtf2.Remove(0, rtf2.ToString().Length)
                        rtf.Append("\intbl")
                        rtf.Append("\row") ' end of row
                        rtf.Append("\pard")
                    Next
                End If
    
            End If
    
            rtf.Append("}")
    
            RichTextBox1.Rtf = rtf.ToString()

    • סומן כתשובה על-ידי zionsh יום ראשון 08 יולי 2012 13:54
    יום ראשון 08 יולי 2012 09:53

כל התגובות

  • שלום וברכה וברוך הבא!

    אינני חושב שזו הדרך הנכונה, כיוון שב richtextbox   אתה קובע אורך ורוחב ולא עמודות ושורות

    אם תרצה עמודות ושורות הייתי ממליץ לך להשתמש בפקד DATA כלשהו כגון DATAGRIDVIEW, ולמרות שהוא קצת קשה.

    מבחינה תכנותית הוורד קודם בונה טבלה (סגנון DATATABLE) ואח"כ מצייר אותה (כלומר לוקח לעצמו פקד DATA ועושה לו DATASOURCE=DATATABLE)

    נ.ב. - אנא אל תפגע אבל "אני מנסה", "אשמח לעזרה"

    נ.ב. 2 - נשמח להמשיך לעזור, ולעזרה יותר מהירה ONLINE אתה מוזמן לשאול גם בפורום דוט נט תפוז

    • נערך על-ידי Bresleveloper יום שלישי 03 יולי 2012 08:29
    יום שלישי 03 יולי 2012 08:28
  • תודה לך על התיקון אני יודע שיש לי שגיות כתיב ואני לא נפגע מזה 

    אני לא רוצה לעשות טבלה דרך DATAGRIDVIEW אני רוצה לעשות טבלה כמו שבוורד השאלה אך אני מצייר אותה ?

    יום שלישי 03 יולי 2012 08:35
  • לא אמרת אם זה WINFORM או WEBFORM

    מצ"ב לינק להגדרות RTF ב WINFORM עמוד 93 מתייחס לטבלה

    http://www.microsoft.com/en-us/download/details.aspx?id=10725

    יום שלישי 03 יולי 2012 11:28
  • תודה על הלינק 

    זה ב- winform  ולצערי לא הבנתי מהקובץ בלינק מה אני אמור לעשות בדיוק כדי לצייר טבלה 

    יש לך פתרון אחר ?

    יום שלישי 03 יולי 2012 15:27
  • מצ"ב הוספת טבלה ל RTF

    שמתי richtext וכפתור

    עם הקוד הבא:

     private void button1_Click(object sender, EventArgs e)
            {
                
                StringBuilder rtf = new StringBuilder();
    
                rtf.Append(@"{\rtf1"); //beginning of rtf  
    
                rtf.Append(@"\trowd");//table row defaults  
    
                rtf.Append(@"\cellx1000");
    
                rtf.Append(@" this is my text");
    
                rtf.Append(@"\cellx2000");
    
                rtf.Append(@"\intbl \cell \cell \row");
    
                rtf.Append(@"\pard");
    
                rtf.Append(@"}");
    
                richTextBox1.Rtf = rtf.ToString(); 
            }

    יום רביעי 04 יולי 2012 07:02
  • אם יותר קל לך אתה יכול לשים במקום ה richtext דפדפן ואז להעלות בתוכו עורך עשיר כגון CKEDITOR

    מצ"ב לינק לדוגמה עבר התחלה....

    http://hoenes.blogspot.co.il/2007/04/fckeditor-running-on-desktop.html

    יום רביעי 04 יולי 2012 07:07
  • ציון הצדיק מה שיש שם בעמוד 93 זה בדיוק מה שאתה צריך (זה אותה ארכיטקטורה שיש לטבלאות וורד)

    הנה לינק עם דוגמאות תנסה להעתיק ולראות מה יוצא

    http://www.pindari.com/rtf3.html

    יום רביעי 04 יולי 2012 07:38
  • tetitu

    אחי תודה על הקוד אבל זה קוד בשפת #c  ואני מחפש קוד בשפת vb  

    בכל אופן תודה 


    • נערך על-ידי zionsh יום רביעי 04 יולי 2012 08:17
    יום רביעי 04 יולי 2012 08:07
  • Bresleveloper

    אחי זה גם לא בשפת vb אני לא יודע איזה שפה זאת 

     יש לך משהוא בשפת vb 

    תודה בכל אופן 

    נ.ב.

    למה צדיק ?

    יום רביעי 04 יולי 2012 08:21
  • וואו הרבה זמן לא נגעתי ב VB

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim rtf As New StringBuilder()
    
    
            rtf.Append("{\rtf1")
    
            rtf.Append("\trowd")
    
            rtf.Append("\cellx1000")
    
            rtf.Append(" this is my text")
    
            rtf.Append("\cellx2000")
    
            rtf.Append("\intbl \cell \cell \row")
    
            rtf.Append("\pard")
    
            rtf.Append("}")
    
            RichTextBox1.Rtf = rtf.ToString()
    
        End Sub

    יום רביעי 04 יולי 2012 09:44
  • VB לא כלכך שונה מ C#

    תשמור את הלינק הזה:

    http://www.developerfusion.com/tools/convert/csharp-to-vb/

    ולגבי מה ש Bresleveloper (אריאל) שלח זה "השפה" של RTF

    כמו שדפדפן יודע להציג HTML אז RICHTEXTBOX יודע להציג תגים משלו וזה בדיוק זה.

    והלינק ששלחתי לך

    http://www.microsoft.com/en-us/download/details.aspx?id=10725

    נותן לך את כל ההגדרות של השפה בשביל לעצב את הטקסט שלך .

    בהצלחה

    תמיר :)

    יום רביעי 04 יולי 2012 09:52
  • tetitu  תודה רבה לך על  עזרה אני הבדוק את הקוד 

    דרך הגב יש ספר בעברית שמלמד לעבוד RTF בגלל שבספר vb לא ראיתי שמדברים על זה 

    נ.ב. 

    אתה מכיר ספר טוב בעברית על #C ?

    ושוב תודה רבה לך

     
    יום רביעי 04 יולי 2012 11:59
  • אחי בדקתי את הקוד יש בעיה עם StringBuilder הוא מסמן אותו בפס כחול 

    למראות שבקישור שרשמתה לי שהוא ממש יכל לעזור לי ותודה על הקישור אבל בזה הוא לא עוזר בגלל שהוא כותב שב-vb  יש פקודה כזאת אבל אין  

    ב- vb יש את הפקודה  String בלי Builder

    • נערך על-ידי zionsh יום רביעי 04 יולי 2012 13:40
    יום רביעי 04 יולי 2012 13:11
  • אני חושב שאתה קופץ קצת מעל לפופיק אם לא פתרת את זה עד עכשיו.

    שים לב לשורה הראשונה:

    Imports System.Text

    זה נותן לך להשתמש באובייקט של stringBuilder

    אם אתה רוצה, אתה יכול סתם לשרשר STRING

    השימוש ב STRINGBUILDER הוא לצרכי ביצועים בלבד.

    Imports System.Text
      
    Public Class Form1
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim rtf As New StringBuilder()
    
    
            rtf.Append("{\rtf1")
    
            rtf.Append("\trowd")
    
            rtf.Append("\cellx1000")
    
            rtf.Append(" this is my text")
    
            rtf.Append("\cellx2000")
    
            rtf.Append("\intbl \cell \cell \row")
    
            rtf.Append("\pard")
    
            rtf.Append("}")
    
            RichTextBox1.Rtf = rtf.ToString()
    
        End Sub
    End Class


    • נערך על-ידי tetitu יום רביעי 04 יולי 2012 13:30
    יום רביעי 04 יולי 2012 13:28
  • קודם כל המון תודות לך  על העזרה

    דבר שני אני לא חושב שקפצתי מעל לפופיק את זה אני לא למדתי וזה גם לא בושה לשאול אם לא יודעים 

    אני כבר חודש מחפש אך עושים את הטבלאות ובדקתי בכל ספר אפשרי ולא מצאתי תשובה לזה 

    בכל אופן המון תודות לך 

    יום רביעי 04 יולי 2012 13:51
  • בהחלט שזו לא בושה לשאול  בגלל זה קיימים הפורומים האלו.

    גם אני שאלתי לא פעם שאלות כאן בפורום.

    כל הנושא של RTF בד"כ לא נמצא בספרים.

    שיהיה לך בהצלחה.

    יום רביעי 04 יולי 2012 14:12
  • אחי עוד שאלה קטנה אך אני מחבר את textbox1.text לכול העסק הזה 

    זאת אומרת שיש textbox1.text עם ערך 5 אז אך אני מחבר אותו לקוד בצורה כזאת 

    rtf.Append("\intbl \cell " = textbox1.text)

    או

    rtf.Append("\intbl \cell " *textbox1.text)

    או שיש דרך אחרת?

    נ.ב.

    לא אמרת לי איפה אני יכל ללמוד את rtf אם אין ספר 

    יום חמישי 05 יולי 2012 07:22
  •  rtf.Append("{\rtf1")
    
            rtf.Append("\trowd")
    
            rtf.Append("\cellx1000")
    
            rtf.Append(textbox1.text)
    
            rtf.Append("\cellx2000")
    
            rtf.Append("\intbl \cell \cell \row")
    
            rtf.Append("\pard")
    
            rtf.Append("}")
    
    

    בלינק הזה נמצאים כל ההגדרות של RTF

    http://www.microsoft.com/en-us/download/details.aspx?id=10725

    הייתי שמח לדעת מה אתה מנסה לעשות ולמה.

    • סומן כתשובה על-ידי zionsh שבת 07 יולי 2012 20:54
    • סימון כתשובה בוטל על-ידי zionsh שבת 07 יולי 2012 23:34
    יום חמישי 05 יולי 2012 11:32
  • אחי חשבתי על זה גם אבל זה לא נותן לי את מה שרציתי בגלל
    שיש לי textbox1.text שהוא נגיד עמודות
    textbox2.text שהוא נגיד שורות 
    כך שאם ב- textbox1.text אני נותן לו ערך 4
    וב - textbox2.text אני נותן לו ערך 10 
    אז צריך להיות לי טבלה של 4 עמודות 10 שורות וכרגע זה לא נותן לי לעשות את זה 

    אני בניתי תוכנה לעבודה שהיא עובדת אני רק משפר אותה
    אני עובד גם עם וורד וצריך טבלאות 
    אז אמרתי לעצמי אם כבר בניתי תוכנה למה לא לתכנת משהוא דומה לוורד או כמו וורד
    ואז אני לא צריך לפתוח את וורד בכלל אני רק פותח את התוכנה ועובר לחלון כמו וורד מהתוכנה שבניתי
    יום חמישי 05 יולי 2012 13:49
  •        Dim rtf As New StringBuilder()
            Dim rtf2 As New StringBuilder()
            Dim rows As Integer
            Dim cols As Integer
            rtf.Append("{\rtf1")
            Dim i_cols As Integer
            Dim i_rows As Integer
            If (Integer.TryParse(TextBox1.Text, cols)) Then
                If (Integer.TryParse(TextBox2.Text, rows)) Then
    
                    For i_rows = 0 To rows
                        rtf.Append("\trowd")
                        For i_cols = 0 To cols
                            rtf.Append(" \cellx")
                            rtf.Append((i_cols + 1) * 1000)
                            rtf2.Append(" \cell")
                        Next
    
                        rtf.Append(rtf2.ToString())
                        rtf2.Remove(0, rtf2.ToString().Length)
                        rtf.Append("\intbl")
                        rtf.Append("\row") ' end of row
                        rtf.Append("\pard")
                    Next
                End If
    
            End If
    
            rtf.Append("}")
    
            RichTextBox1.Rtf = rtf.ToString()

    • סומן כתשובה על-ידי zionsh יום ראשון 08 יולי 2012 13:54
    יום ראשון 08 יולי 2012 09:53
  • יכול להיות שיהיה לך יותר נוח לעבוד עם סיפריות כמו:

    http://www.codeproject.com/Articles/30902/RichText-Builder-StringBuilder-for-RTF

    יום ראשון 08 יולי 2012 09:56
  • אחי זה עובד המון תודות לך

    אני רואה שאתה טוב בזה 

    רוצה ללמד אותי בעד תשלום ?

     
    יום שני 09 יולי 2012 05:37
  • אני לא טוב בזה :( ואף פעם בעבר לא כתבתי עם RTF מכיוון שראיתי שזה מסובך מדי למסגרת הזמן שאני מקציב ללימוד הנושא

    אני  בד"כ בוחר לעבוד עם פלטפורמת דפדפן שהרבה יותר קל לעשות איתה דברים.

    אפילו האנטי וירוס שלך משתמש בדפדפן בכדי להציג את התפריטים שלו (NOTRON,AVG,KASPERSKY ועוד).

    אומנם יש לה את המגבלות שלה אבל אני מאמין שתוך 5 שנים סופסוף יווצר מצב שהיינו רוצים בשנת 2000.

    בתמצית זה שמכשירים ואתה תהיו מחוברים לרשת זמינה בכל מקום  ויהיה אפשר לנהל דברים מרחוק ללא תלות בחומרה והכל בהתאמה אישית.

    וחזרה אלינו ......

    כל מה שעשיתי זה קצת גוגל ולנסות לתקוף את הבעיה בלי לפחד מכשלון.

    עד כמה שזכור לי רונן (או בשמו בפורומים פיתוח) נותן שיעורים פרטיים אתה יכול ליצור איתו קשר

    יום רביעי 11 יולי 2012 07:40
  • המון תודות על העזרה 
    יום חמישי 19 יולי 2012 12:49