بسم الله الرحمن الرحيم
[b]ملاحظة: الموضوع منقول من المنتدى القديم
وهو للأخ Abu Ehab
[/b]
RichTextBox In VB.Net
[b]ملاحظة: الموضوع منقول من المنتدى القديم
وهو للأخ Abu Ehab
[/b]
RichTextBox In VB.Net
ما هي RichTextBox
RichTextBoxes متشابهة إلى مربعات النص ولكنها توفر بعض الميزات المتقدمة أكثر من مربع نص العاديه.
و يتيح لنا تنسيق النص إلى إضافة لون خاص لكل كلمه أو أي نص نريده و كذلك التحكم في حجم بعض النصوص و أنواع الخطوط.
تم إنشاء RichTextBoxes لمعالجات النصوص الكثيرة لكي تسمح لنا بحفظ النص والبحث عن جملة أو كلمة معينه داخل النص المعروض في الأداة .
يمكن أعتبارها صفحة تستطيع الكتابة والقراءة والبحث والتعديل فيها كما تشاء .
بعض الشباب يستخدمها كمحرر نصوص أو للبرامج التي تعتمد على شروحات معينه .
على كل الاحول :
سأحاول بأذن الله التطرق الى بعض ما تقدمه لنا هذة الأداة الجميلة .
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
وهذا الكود التالي يفي بالغرض :
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)
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.FileName, RichTextBoxStreamType.PlainText)
طيب لغاية الأن تمام .
خلينا نشوف كيف ممكن نبحث عن نص أو كلمة ضمن النص المعروض داخل الاداة
ونميزه عن غيرة بلون معين حسب الرغبة .
ونستخدم لهــــــذة Find العمـــــــليه :
خلينا نشوف كيف ممكن نبحث عن نص أو كلمة ضمن النص المعروض داخل الاداة
ونميزه عن غيرة بلون معين حسب الرغبة .
ونستخدم لهــــــذة 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.Font, FontStyle.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
يعني العمليـة فيهــــــا ذكــــــاء برمجي :
يعني كـود متعـوب عليـــــــــه كثيـــــر .
[INDENT]ممكن أيضــــا فتح ملف نصي من Resource هكـــذا :
[/INDENT]
للبحــــــث عن كلمة وتلوينهـــــا في كامل النص ,, يتتطلب الأمر مكتبة النصوص
نقوم بأستدعائها وتعريفها في فضــــــاء الاسماء كمايلي :
وهو كود كان من الصعب الحصول عليه وليس له أجابة بلغــــــة 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 + 1, RichTextBoxFinds.MatchCase)
Loop
للبحــــــث عن كلمة وتلوينهـــــا في كامل النص ,, يتتطلب الأمر مكتبة النصوص
نقوم بأستدعائها وتعريفها في فضــــــاء الاسماء كمايلي :
PHP كود :
Imports System.Text
Imports System.Text.RegularExpressions
ثم بعد أن نعرف متغير للمكتبة ,, نسمح للمستخدم بأدخال النص المراد البحث عنه في مربع نص كما يلي :
PHP كود :
Dim MatchCollectionX As MatchCollection
MatchCollectionX = Regex.Matches(RichTextBox1.Text, TextBox1.Text)
ثم نبــــــدأ البحث :
أوكي شباب :
تعـــالوا نعمـــــل حاجة حلوة جدا وهي أنشاء خيارات للفأرة تحتوي على( نسخ_ قص_ لصق) ترافق أداتنا الجميلة .
راح نعمل مثال مع بعض :
اولا نضع أداتان RichTextBox1 ,RichTextBox2
ندرج أداة متخصصه في انشاء قوائم نستخدمها لانشاء خيارات الفأرو وهي ContextMenuStripتجدها في صندوق الادوات .
ندرج الاداة على الفورم ثم نضع لها خيارات كما في الصورة :
ثم ننقر على ادات الرتش 1 ونغير في الخاصية التالية كما في الصورة :
ثم ندخل أوامر النسخ والقص واللصق كما سبق شرح في مشاركة سابقة
ثم قم بالتنفيد
ثم أنقر بزر الفأرة الأيمن وستتضح لك الامور
PHP كود :
Dim S As Match
Dim v As New ListBox
For Each S In MatchCollectionX
RichTextBox1.Select(S.Index, TextBox1.Text.Length)
RichTextBox1.SelectionColor = Color.Red
v.Items.Add(S.Value)
Next
أوكي شباب :
تعـــالوا نعمـــــل حاجة حلوة جدا وهي أنشاء خيارات للفأرة تحتوي على( نسخ_ قص_ لصق) ترافق أداتنا الجميلة .
راح نعمل مثال مع بعض :
اولا نضع أداتان RichTextBox1 ,RichTextBox2
ندرج أداة متخصصه في انشاء قوائم نستخدمها لانشاء خيارات الفأرو وهي ContextMenuStripتجدها في صندوق الادوات .
ندرج الاداة على الفورم ثم نضع لها خيارات كما في الصورة :
ثم ننقر على ادات الرتش 1 ونغير في الخاصية التالية كما في الصورة :
ثم ندخل أوامر النسخ والقص واللصق كما سبق شرح في مشاركة سابقة
ثم قم بالتنفيد
ثم أنقر بزر الفأرة الأيمن وستتضح لك الامور