تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
RichTextBox In VB.Net
#1
بسم الله الرحمن الرحيم

[b]ملاحظة: الموضوع منقول من المنتدى القديم
وهو للأخ Abu Ehab

[/b]
RichTextBox In VB.Net



ما هي RichTextBox
RichTextBoxes متشابهة إلى مربعات النص ولكنها توفر بعض الميزات المتقدمة أكثر من مربع نص العاديه.
و يتيح لنا تنسيق النص إلى إضافة لون خاص لكل كلمه أو أي نص نريده و كذلك التحكم في حجم بعض النصوص و أنواع الخطوط.
تم إنشاء RichTextBoxes لمعالجات النصوص الكثيرة لكي تسمح لنا بحفظ النص والبحث عن جملة أو كلمة معينه داخل النص المعروض في الأداة .
يمكن أعتبارها صفحة تستطيع الكتابة والقراءة والبحث والتعديل فيها كما تشاء .
بعض الشباب يستخدمها كمحرر نصوص أو للبرامج التي تعتمد على شروحات معينه .
على كل الاحول :
سأحاول بأذن الله التطرق الى بعض ما تقدمه لنا هذة الأداة الجميلة .



الان ننتـقل الى أهم خصائص الاداة

Appearance: وهي لتغيير الاستايل أثناء التصميم

AutoVerbMenu: لاظهار النوافذ المنبثقة بشكل تلقلئي
BackColor: لتغيير لون الخلفية
BorderStyle: لعمل مظهرللستيل
DataBindings:تقوم بقراءة محتوات وتعيد رقم للحفظ
DataChanged: تقوم بتغيير محتويات داخل قاعدة البيانات
DataField :تعيد قيمة عند تعبئة القاعدة أو استدعاء عنصر منها
DisableNoScroll: عدم تفعيل السكورل بار
DragIcon : للسحب و الافلات
DragMode: لتجميد السحب والافلات
Enabled : للتعطيل
FileName : اسم الملف المحمل على الصندوق
Font : خاصية الخط
Height : التحكم بالارتفاع
HideSelection: اخفاء التحديد
Hwnd : مقبض نافذة الكائن
Index : لمعرفة رقم العنصر في المصفوفة
Left : موقع الكائن على اليسار
Locked : لاخفاء التحديد
MaxLength : لتحديد طول الاحرف في الصندوق
MouseIcon : حالة المؤشر
MultiLine : لجعل الصندوق يأخذ عدة سطور
Name : اسم الكائن
Parent : لاعادة العنصر النشط
ScrollBars : اظهار أشرطة التمرير
SelAlignment : خاصة بتحديد النص
SelBold : لتثخيم النص المحدد
SelColor : تلوين النص المحدد
SelFontName : لتغيير اسم الخط للنص المحدد
SelFontSize : تغيير حجم الخط المحدد
SelHangingIndent : لمعرفة عدد أحرف الكتابة
SelItalic : لامالة الخط للنص المحدد
SelLength : لحساب طول النص المحدد
SelUnderline : تضع خط تحت النص المحدد
SelTabs : التنقل بالمفتاح TAB
TabStop : ايقاف التنقل بالمفتاح TAB
Text : لاسناد النص الى الصندوق
ToolTipText : اظهار كلام عند مرور الماوس على الكائن
Top : موقع الكائن من الأعلى
Visible : لاظهار أو اخفاء الكائن
Width : عرض الكائن

أهم احداث الاداة وهي :

Change : عند تغير النص أو الكتابة يطبق ما بداخله من الاكود
Click : عند النقر بزر الفأرة يطبق الكود الذي بداخله
DblClick : عند النقر المزدوج بزر الفأرة
DragDrop : عند عملية السحب والافلات للفأرة
DragOver : عند السحب أو الافلات على الكائن
GotFocus : يطبق عند التركيز على الكائن
KeyDown : يطبق عند كبس الحروف الى الاسفل
KeyPress : عند الضغط على المفاتيح
ٍ KeyUp : عند رفع يدك على الازرار
MouseDown : عند الضغط على الفأرة الى الأسفل
MouseMove : يطبق عند تحريك الماوس
MouseUp : يطبق عند افلات الماوس الى الأعلى
OLECompleteDrag : يطبق عند جلب الكائن والافلات على النموذج
OLEDragDrop : يطبق عند سحب الكائن
OLEDragOver : عند المرور على الكائن وسحبه
OLEStartDrag : عند المرور على الكائن
SelChange : ينشط عند تحديد النص وتغيره

في البداية سنتعرف على أهم ما تقدمة لنا هذة الأداة والهدف الرئيسي الذي تم أنشاء الاداة من أجله
وهو فتح ملف نصي والكتابة فيه أو تعديله وأمكانية حفظ الملف في المسار المحدد حسب رغبة المستخدم


لفتح ملف نصي نستخدم : LoadFile
وهذا الكود التالي يفي بالغرض :

رموز PHP:

   OpenFileDialog1.Filter = " Text Files (*.Txt)|*.txt"
       
If OpenFileDialog1.FileName = vbNullString Then Exit Sub
       OpenFileDialog1
.ShowDialog()
       
RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)  



ولحـــــــفظ الملف نتستخدم : SaveFile

والكود التالي يفي بالغرض :


PHP كود :
 SaveFileDialog1.Filter " Text Files (*.Txt)|*.txt"
 
       SaveFileDialog1.ShowDialog()
 
       If SaveFileDialog1.FileName vbNullString Then Exit Sub
        RichTextBox1
.SaveFile(SaveFileDialog1.FileNameRichTextBoxStreamType.PlainText  
طيب لغاية الأن تمام .
خلينا نشوف كيف ممكن نبحث عن نص أو كلمة ضمن النص المعروض داخل الاداة
ونميزه عن غيرة بلون معين حسب الرغبة .

ونستخدم لهــــــذة Find العمـــــــليه :

PHP كود :
   RichTextBox1.Text "wellcome in my ***** ***Site With Abu Ehab"
 
       RichTextBox1.SelectionStart RichTextBox1.Find("*****")
 
       RichTextBox1.SelectionColor Color.Red   

ممكن أيضـــــا نقـوم بتحـديد كامل النص بالأداة :
PHP كود :
With RichTextBox1
            
.Text "My Name Is Abu Ehab "
 
           .SelectAll()
 
           .SelectionColor Color.Red

        End With   
تعرفنا كيفية البحث عن نص وتحديدة بلون معين .
طيب لو كنت عايز تحدده بخط معين وليس بلون
أليك الكود التالى :

PHP كود :
   RichTextBox1.Text "wellcome in my ***** ***Site With Abu Ehab"
 
       RichTextBox1.SelectionStart RichTextBox1.Find("Abu Ehab")
 
       Dim TextFont As New Font(RichTextBox1.FontFontStyle.Bold)
 
       RichTextBox1.SelectionFont TextFont   
بعــــد ما حددنا النص المطلوب البحث عنه ,, ربما نحتاج الى عمليات أخرى لهذا النص مثل ( نســـــخ _ قص _ لصق )

أختار العملية التي تريدها كما هو موضح :

PHP كود :
RichTextBox1.SelectionStart RichTextBox1.Find("Your Text Here")
 
       RichTextBox1.Copy()
 
       RichTextBox1.Cut()
 
       RichTextBox1.Paste()   
تعالوا نرى كيفية أدراج صورة في الأداة :

PHP كود :
    Dim img As Image Image.FromFile("E:\AbuEhab.jpg")
 
       Clipboard.SetImage(img)
 
       Me.RichTextBox1.Paste()   
وممكن ندرج مجموعة صور في الريسورس ونستدعيها :


PHP كود :
  Clipboard.SetImage(My.Resources.SomeImage)
 
       Me.RichTextBox1.Paste()   
نأتي الى أدراج صورة من نوع Gif :
وهو كود كان من الصعب الحصول عليه وليس له أجابة بلغــــــة VB.Net في كل المنتديات
بل تم العثـور علية بلغــــة C Sharp وقـام الأستاذ : عبد الله ( أحد مشرفين في منتدي فجيوال بيسك العرب)
قام مشكورا بتحويله الى لغـة VB.Net .
تعلوا بنا نرى فكرة الكود والتي تتلخص في التالي :
انشاء كائن من نوع PictureBox وأدراج الصورة ذات الأمتداد Gif فيهـــا
ثم نجعل لون خلفية أداة PictureBox بنفس خلفية أداة RichTextBox
ثم أدراج أداة PictureBox والتي تحمل الصورة ذات الامتداد Gif المتحرك في أداة RichTextBox
يعني العمليـة فيهــــــا ذكــــــاء برمجي :
PHP كود :
Dim pic As New PictureBox
        pic
.Image Image.FromFile("E:\112.gif")
 
       pic.BackColor RichTextBox1.BackColor
        pic
.SizeMode PictureBoxSizeMode.AutoSize

        RichTextBox1
.AddControl(pic  
يعني كـود متعـوب عليـــــــــه كثيـــــر .



[INDENT]ممكن أيضــــا فتح ملف نصي من Resource هكـــذا :

PHP كود :
RichTextBox1.Text My.Resources.New_Text_********   
حيث أن : New_Text_******** هو أسم الملف النصي الموجود في Resource

لتحـديد مكان الكتـابة أو ظهور النص
أستخدم أحدى الطرق التــــــالية :

PHP كود :
RichTextBox1.SelectionAlignment HorizontalAlignment.Center
        RichTextBox1
.SelectionAlignment HorizontalAlignment.Left
        RichTextBox1
.SelectionAlignment HorizontalAlignment.Right   
وللبحــــث عن كلمــــــة أو جملة داخـــــل الاداة :
مثـــــــال :


PHP كود :
 RichTextBox1.Text "My Name is Abu Ehab , I Live In Gaza Strip"
 
       Dim FoundAtPosition As Integer
        FoundAtPosition 
RichTextBox1.Find("Abu Ehab"RichTextBoxFinds.MatchCase)
 
       Do Until FoundAtPosition 0
           
            FoundAtPosition 
RichTextBox1.Find("Abu Ehab"FoundAtPosition 1RichTextBoxFinds.MatchCase)
 
       Loop   
[/INDENT]

للبحــــــث عن كلمة وتلوينهـــــا في كامل النص ,, يتتطلب الأمر مكتبة النصوص
نقوم بأستدعائها وتعريفها في فضــــــاء الاسماء كمايلي :

PHP كود :
Imports System.Text
Imports System
.Text.RegularExpressions   

ثم بعد أن نعرف متغير للمكتبة ,, نسمح للمستخدم بأدخال النص المراد البحث عنه في مربع نص كما يلي :


PHP كود :
       Dim MatchCollectionX As MatchCollection
        MatchCollectionX 
Regex.Matches(RichTextBox1.TextTextBox1.Text  
ثم نبــــــدأ البحث :

PHP كود :
       Dim S As Match
        Dim v 
As New ListBox
        For Each S In MatchCollectionX
            RichTextBox1
.Select(S.IndexTextBox1.Text.Length)
 
           RichTextBox1.SelectionColor Color.Red
            v
.Items.Add(S.Value)

 
       Next   

أوكي شباب :
تعـــالوا نعمـــــل حاجة حلوة جدا وهي أنشاء خيارات للفأرة تحتوي على( نسخ_ قص_ لصق) ترافق أداتنا الجميلة .

راح نعمل مثال مع بعض :
اولا نضع أداتان RichTextBox1 ,RichTextBox2
ندرج أداة متخصصه في انشاء قوائم نستخدمها لانشاء خيارات الفأرو وهي ContextMenuStripتجدها في صندوق الادوات .
ندرج الاداة على الفورم ثم نضع لها خيارات كما في الصورة :

ثم ننقر على ادات الرتش 1 ونغير في الخاصية التالية كما في الصورة :



ثم ندخل أوامر النسخ والقص واللصق كما سبق شرح في مشاركة سابقة

ثم قم بالتنفيد
ثم أنقر بزر الفأرة الأيمن وستتضح لك الامور


















الملفات المرفقة
.rar   New Doc.rar (الحجم : 582.57 ك ب / التحميلات : 145)
.rar   RichTextBox Book_2.rar (الحجم : 216.9 ك ب / التحميلات : 113)
.rar   vba4a-1555804799.rar (الحجم : 60.4 ك ب / التحميلات : 85)
.rar   vba4a-fcad8c2c79.rar (الحجم : 62.81 ك ب / التحميلات : 84)
الرد }}}}
تم الشكر بواسطة:
#2
لقد ارفقت جميع مرفقات الموضوع في الاعلى

وهذا كتاب pdf لشرح الموضوع بشكل مرتب


الملفات المرفقة
.rar   RichTextBox Book_2.rar (الحجم : 216.9 ك ب / التحميلات : 154)
الرد }}}}
تم الشكر بواسطة:
#3
جزاك الله عنا كل خير :o
الرد }}}}
تم الشكر بواسطة:
#4
Raggi Tech كتب :جزاك الله عنا كل خير :o

تسلم اخي الكريم
الرد }}}}
تم الشكر بواسطة:
#5
بسم الله الرحمن الرحيم
بــــــــارك الله فيـــــــك أخي الحبيــــــــب .

Abu Ehab : Microsoft Partner  & Systems Developer
الرد }}}}
تم الشكر بواسطة:
#6
رائع ماشاء الله
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اصنع محرر أكواد خاص بك باستخدام الأداة RichTextBox السكر المغرور 8 1,516 03-09-16, 07:59 PM
آخر رد: tryold
  معلومة ::: RichTextBox RaggiTech 7 635 06-10-12, 09:04 PM
آخر رد: RaggiTech
  معلومة -- كيف تقوم بطباعة الـ RichTextBox كما هو منسق RaggiTech 0 515 04-10-12, 11:53 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم