السلام عليكم اخواني استاذتي الكرام
ارجو منكم المساعده في هذا السؤال الذي هو موضح من عنوانه ادراج ارتباط تشعبي في richtextBox مثل برنامج الدفتر او الورد خطرت ببالي هذه الفكره عندما كنت اعبث ببرنامجي قمت بنسخ ملف فيديو من احدا المجلدات ثم قمت بتشغيل برنامجي وقمت بالتحديد على اداه RichTextBox ثم قمت بلصق هذا الملف فوجت بانه قام بلصق ملف الفيديو كا ارتباط تشعبي مثل الورد
ان محتاج جدا لخبراتكم في هذا الكود ارجو ان تكونو كما عهدناكم وشكرا
اخى معاذ العامري
بخصوص الاداء RichTextBox
فهو عبارة ان واجهة برنامج WordPad الموجود باى جهاز كمبيوتر
حيث ان هذا البرنامج وهو الاشبح لواجهة Microsoft Office Word
لذلك التعامل مع الاداء فى النسخ واللصق سيكون مفعل تلقائي كما لو انك تستخدم البرنامج
تحياتى لك
وتمنياتى لك التوفيق
إن كان القصد حدث الضغط على الارتباط التشعبي فهو الحدث LinkClicked للأداة RichTextBox
وتجد الرابط في e.LinkText داخل الحدث
PHP كود :
Private Sub RichTextBox1_LinkClicked(sender As Object, e As LinkClickedEventArgs) Handles RichTextBox1.LinkClicked
Process.Start(e.LinkText)
End Sub
شاكرا جدا تعاونكما معي استاذي elgokr و finish
شكرا جزيلاً لكما
وعليكم السلام أخ معاذ
كما فهمت من سؤالك هو أنك تريد آلية إضافة روابط إلى الـ RichTextBox عن طريق الكود.
كما تلاحظ أن أداة RichTextBox في الدوت-نت تمتلك خاصية Controls ( لحسن الحظ تمت وراثتها وعمل تكامل لها مع RichTextBox

) .
كما تلاحظ أداة LinkLabel هي الأداة الخاصة بالروابط في الدوت-نت ( عبارة عن Label كـرابط )،
هنا نستنتج أنه يمكن إضافة LinkLabel إلى RichTextBox كـ ( Control ) :-
كالمثال التالي ( نفترض أن لديك RichTextBox في Form1 وقمت بوضع الكود التالي داخل Form1_Load ) :
PHP كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim lb As New LinkLabel
lb.Text = "Hello"
RichTextBox1.Controls.Add(lb)
End Sub
كما تلاحظ استطعنا إضافة رابط داخل الـ RichTextBox ، ولكن قد تلاحظ بأن الحدث RichTextBox1_LinkClicked ( الحدث الخاص بتنفيذ شيء ما عند الضغط على الروابط ) ، بأنه لايعمل !!
لحل مثل هذه الإشكالية، فسأستخدم مفهوم ( وراثة الكائنات Inheritance )، سأجعل الحدث يتم تنفيذه عن طريق LinkLabel وليس عن طريق الـ RichTextBox ( سأورث الكائن LinkLabel إلى كائن جديد يكون به خصائص إضافية ).
نقوم بإنشاء كلاس كالتالي :
PHP كود :
Class RichTextBoxLinkItem
Inherits LinkLabel
Private _LinkOrUrl As String
Public Property LinkOrURL As String
Get
Return _LinkOrUrl
End Get
Set(value As String)
_LinkOrUrl = value
End Set
End Property
Private Sub RichTextBoxLinkItem_Click(sender As Object, e As EventArgs) Handles Me.Click
Process.Start("chrome", _LinkOrUrl)
End Sub
End Class
أسميته RichTextBoxLinkItem يرث الكائن LinkLable ، وعند الضغط عليه يقوم بفتح الرابط (المخزن في المتغير LinkOrURL ) عن طريق متصفح chrome :-
لاحظ بإمكانك تعديل السطر :
PHP كود :
Process.Start("chrome", _LinkOrUrl)
إلى
PHP كود :
Process.Start(_LinkOrUrl)
إذا كنت تريد فتح الرابط بالمتصفح الإفتراضي داخل النظام .
_______________________________________________________________________________________________________________________________
الآن نقوم بتعديل الـ Form1_Load ليصبح حسب التالي :-
PHP كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim lb As New RichTextBoxLinkItem
lb.Text = "Hello"
lb.LinkOrURL = "http://vb4arb.com"
RichTextBox1.Controls.Add(lb)
End Sub
لاحظ أصبح المتغير RichTextBoxLinkItem بدل من LinkLabel في السطر الأول،
الآن لديك ميزة وهي إضافة ( رابط + نص مختلف عن الرابط )، لتتمكن من إضافة روابط مثل "إضغط_هنا" مثلًا ( أعتقد أن هذا من ضمن ما تبحث عنه

)
المثال كامل بالمرفقات ، وأعتذر عن الإطالة لأن التعليمات البرمجية بلا شرح لا تساوي شيء .
وشكرًا !