كود تحديد موقع مؤشر الكتابة caret position هو اول كود في الكود الذي ارفقته لك في موضوع الاكمال التلقائي
وهذا هو مرة اخرى
اولا قم باستيراد المكتبة التالية
كود :
Imports System.Runtime.InteropServices
كود :
<DllImport("user32.dll")> _
Private Shared Function GetCaretPos(ByRef lpPoint As Point) As Boolean
End Function
Public Function GetCorrectCaretPos() As Point
Dim pt As Point = Point.Empty
If GetCaretPos(pt) Then
Return pt
Else
Return Point.Empty
End If
End Function
الكود يعمل وهو بعطيك احداثيات مؤشر الادخال (الكتابة) الخاص بتكستبوكس
وطريقة استخدامه بسيطة ضع تكست بوكس وضع محتوى نصي فيه وضع ليبل لكي تعرض لك
قيمة موقع المؤشر
في حدث الـtextchanged h او keypress او keydown ضع الكود التالي
شكرا لك
اي كود لايحتوي كلمة location فهو لا يعطيك location مؤشر الكتابة قد يكون في داتا جريد فيو وقد يكون في تيكست بوكس وقد يكون في غير ذلك انا كتبت في عنوان سؤالي كلمة موقع وكتبت في نص السؤال كلمة location ما اريده هو تحديد location الخاص بمؤشر الكتابة بالنسبة الى الفورم
سورس كود برنامج محاسبة ومبيعات احترافي - سورس كود تطبيق ارسال رصيد من الجوال B4A
"اي كود لايحتوي كلمة location فهو لا يعطيك location"
اسمحلي انت غلطان
في لعات الدوت النت وربما كثير غيرها يتم وصف اللوكيشن بكلمة point وهي الاصح والادق
والخلاصة hk اي دالة تعطيك x او y هي عبارة عن موقع نقطة point
وايضا يا اخي اللوكيشن يتكون من احداثيات وتحديدا اثنتين هما X & Y بالعربي س و ص
يعني هاذي الاحداثيات هي اللوكيشن بشحمه ولحمه
وهذا الكود يعطيك هذي الاحداثيات انا جربته في تكست بوكس لكن في ادوات اخرى ماجربته
اذا كان مايعمل في اداة جريد فيو تقدر تبحث في جوجل get datagridview caret position vb.net
هل من الممكن انك تبغى تعرف الـIndex للحرف الذي يقف عنده المؤشر؟
اذا كان هذا ماتريد فهنا فرق لان الـIndex ليس هو اللوكيشن
السلام عليكم ورحمة الله وبركاته
شكرا لاخي معاند الحظ على مايقدمه لاخوانه في المنتدى
اخي ابو انس انت لم توضح اين تريد موقع المؤشر
هل تريد X و Y بالنسبة الى مساحة صورة او بانل او غيرها من ادوات تحتاج الى موقع ال X و Y
ام تريد موقع المؤشر في كتلة نصية بحيث يتم تحديد موقع المؤشر عن الحرف رقم كذا
بالنسبة للخيار الاول تم الرد من قبل اخي معاند مشكورا
اما بالنسبة للخيار الثاني فاليك هذا المثال وفيه اداة RichTextBox فارغة ويوجد Label عدد 2 الاولى لاظهار موقع المؤشر اينما تضعه والثانية لاظهار عدد الاحرف طبعا تتم عملية الحساب عند الانقاص والزيادة وتظهر النتجة في اللايبل
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
17-12-21, 01:50 AM (آخر تعديل لهذه المشاركة : 17-12-21, 02:00 AM {2} بواسطة ابو انس.)
في المرفقات مشروع باستخدام الكود الذي ذكرته انت
اخذته نسخ لصق
جرب ثم قم بتغيير موقع التيكست بوكس وجرب مرة ثانية
(17-12-21, 01:49 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
شكرا لاخي معاند الحظ على مايقدمه لاخوانه في المنتدى
اخي ابو انس انت لم توضح اين تريد موقع المؤشر
هل تريد X و Y بالنسبة الى مساحة صورة او بانل او غيرها من ادوات تحتاج الى موقع ال X و Y
ام تريد موقع المؤشر في كتلة نصية بحيث يتم تحديد موقع المؤشر عن الحرف رقم كذا
بالنسبة للخيار الاول تم الرد من قبل اخي معاند مشكورا
اما بالنسبة للخيار الثاني فاليك هذا المثال وفيه اداة RichTextBox فارغة ويوجد Label عدد 2 الاولى لاظهار موقع المؤشر اينما تضعه والثانية لاظهار عدد الاحرف طبعا تتم عملية الحساب عند الانقاص والزيادة وتظهر النتجة في اللايبل
وعليكم السلام ورحمة الله وبركاته
هيك انتو الاثنين تحالفتو ضدي ...
انا اتحدث عن ال LOCATION وانت تتحدثون عن Position
ثم اني اثناء مشاركاتي ذكرت اني اريد موقع المؤشر بالنسبة للفورم
الان اذا قمت باضافة اداة للفورم مثلا تيكست بوكس اذا ذهبت للخصائص سوف تجد خاصية Location تساوي مثلا 12; 100 وبالطبع هي احداثيات x y
انا اريد هذه الاحداثيات ولكن ليس لاداة معينة ولكن لمؤشر الكتابة
سورس كود برنامج محاسبة ومبيعات احترافي - سورس كود تطبيق ارسال رصيد من الجوال B4A
17-12-21, 07:31 AM (آخر تعديل لهذه المشاركة : 17-12-21, 07:35 AM {2} بواسطة سعود.)
اسمحوا لي ان كان فهمي خاطيء لكن بحثت في النت عن فهمي للجزئية ووجدته بالسي شارب فحولته الى فيجوال بيسك لبساطته.
تحتاج textbox1 textbox2 وتعبيء الاولى باي شيء والكود التالي تكتبه بحدث النقر لزر الامر اللذي ستضيفه:
PHP كود :
Dim index As Integer = TextBox1.SelectionStart Dim curentline As Integer = TextBox1.GetLineFromCharIndex(index) Dim curentcolumn As Integer = index - TextBox1.GetFirstCharIndexFromLine(curentline) TextBox2.Text = curentcolumn
كما قلت ان لم يكن هو فمعذرة منكم جميعا. او كالتالي:
PHP كود :
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged Dim index As Integer = TextBox1.SelectionStart Dim curentline As Integer = TextBox1.GetLineFromCharIndex(index) Dim curentcolumn As Integer = index - TextBox1.GetFirstCharIndexFromLine(curentline) lblpos.Text = curentcolumn End Sub