الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع Text Box ومعالجة الحروف قبل اظهارها

بدأه ToBeOrNotToBe في 13 ديسمبر 2009 · 10 رد · 2,024 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..

لقد طلب مني في برنامجي هذا المطلوب : الحرف "لا" بجميع صوره ينقلب إلى ال. أي يستبدل "لا" ب "ال"، "لأ" ب "أل" وهكذا. لكتابة "لا" يلزم استخدام حرفين.

ولقد قمت بعمل هذا الكود ولكن اريد ان لايظهر على الشاشة لا بل يظهر ال وهكذا , في برنامجي هذا يقوم المستخدم بكتابة لا وتظهر على الشاشة لا .. حيث هنا المشكلة التي لم اجد لها حل حيث اريد ان يظهر لا بعد تحويلها الى ال ولا يظهرها قبل تحويلها ..

آتمنى ان اجد لديكم حل لهذه المشكلة وشكراً

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (textBox1.Text.Equals("لا"))
            {
                textBox1.Clear();

                textBox1.Paste("ال");
            }
            if (textBox1.Text.Equals("لأ"))
            {
                textBox1.Clear();
                textBox1.Paste("أل");
            }

        }
        }
    }
#2

معقولة ولا رد ؟؟؟؟؟؟؟؟؟

−1
#3

وعليكم السلام ورحمه الله وبركاته .. ,

بصراحه أنا مالي في الفيجوال # , ولكن

ضع الكود لإختبار ما في الـ txt داخل حدث الـ KeyPress فقط .. ,

جربته على الـ VB.net و ضبط معاي الكود ..

بالتوفيق ,

سبحآن الله وبحمده .. سبحآن الله العظيم .. ,

#4

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{

if (textBox1.Text.Equals("لا"))

{

textBox1.Clear();

textBox1.Paste("ال");

}

if (textBox1.Text.Equals("لأ"))

{

textBox1.Clear();

textBox1.Paste("أل");

}

}

}

}

لقد قمت بعمل هذا الكود ولكن ليس هو المطلوب حيث انني اريد ان يظهر الحرف بعد تحويله وليس قبل التحويل ؟؟

اي يجعله يقوم بالادخال بدون لاتظهر على الـ TextBox الا بعد ان تتم عملية التحويل ..

#5

بصراحة ما فهمت كثير سؤالك , أنت تريد المستخدم يدخل حرف "لا" , بدون ماتظهر على الشاشة و يظهر التحويل ؟

جرب وضع هالسطر في حدث الـ Load ..

TextBox1.Text.Equals("لا")

سبحآن الله وبحمده .. سبحآن الله العظيم .. ,

#6

من المفترض أن يقوم البرنامج بالبحث في النص المدخل على الـ TextBox عن الحرف "لا" بجميع صوره ينقلب إلى ال. أي يستبدل "لا" ب "ال"، "لأ" ب "أل" وهكذا. لكتابة "لا" يلزم استخدام حرفين. ولكن البرنامج لايبحث في النص المدخلى على الـ TextBox !!!

أي تقريبا أربعة أزار في لوحة الفاتيح نعمل على معالجتها واستبدالها وهي كالتالي :

Shift + ل = لأ ---> نريد استبدالها بـ أل

لا لوحدها ----------> نريد استبدالها بـ ال

ل+ أ = لأ ---------> نريد استبدالها بـ أل

ل + ا= لا ---------> نريد استبدالها بـ ال

أرجوا المساعدة وفقكم الله

تم تعديل هذه المشاركة بواسطة ToBeOrNotToBe في 15 ديسمبر 2009 في 16:30

#7

فى الكود الذى الوضعته أنت تفترض أن حقل الإدخال سوف يكتب به [ال] فى المرة الواحدة و لن يكتب غيرها !!

يعنى لو كتب الكاتب أى شئ بالإضافة إلى [ال] فإن هذا الكود لن يكون قادرا على الوصل إليها

هذا أولا

ثانيا

ما الفائدة من هذا بالضبط !!!

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#8

أخى أكرر

اقتباس

ما الفائدة من هذا بالضبط !!!

ولكن جرب هذا الكود

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();



            this.textBox1.TextChanged += new EventHandler(textBox1_TextChanged);
        }


        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (this.textBox1.Text == "لا")
            {

                textBox1.Text = "ال";
            }
            else if (this.textBox1.Text == "لأ")
            {

                textBox1.Text = "أل";
            }
            else if (this.textBox1.Text == "لآ")
            {

                textBox1.Text = "اّل";
            }
            else if (this.textBox1.Text == "amr")
            {

                textBox1.Text = "rma";
            }


        }
    }
}

تم تعديل هذه المشاركة بواسطة amr.alsaidy في 15 ديسمبر 2009 في 23:09

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#9
amr.alsaidy كتب:

أخى أكرر

ولكن جرب هذا الكود

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.textBox1.Tag = false;


            this.textBox1.TextChanged += new EventHandler(textBox1_TextChanged);
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (this.textBox1.Text == "لا")
            {
                this.textBox1.Tag = true;
                textBox1.Text = "ال";
            }
            else if (this.textBox1.Text == "لأ")
            {
                this.textBox1.Tag = true;
                textBox1.Text = "أل";
            }
            else if (this.textBox1.Text == "لآ")
            {
                this.textBox1.Tag = true;
                textBox1.Text = "اّل";
            }
            else if (this.textBox1.Text == "amr")
            {
                this.textBox1.Tag = true;
                textBox1.Text = "rma";
            }
                this.textBox1.Tag = false;

        }
    }
}

هذا الكود لايسمح للمستخدم الا بأ دخال حرف " لا" فقط وهذا ليس المطلوب أخي الكريم .

المطلوب هو أنه عندما يدخل المستخدم أي نص فانه يبحث من خلال هذا النص عن حرفي " لأ " و " لا " ويستبدلهما بـ " أل " و " ال " على التوالي .

أتمنى أن جد المساعدة جزاكم الله خيرا ...

#10

لقد وجدت هذا الحل ولكن عندما يتم التحويل فإن المؤشر ينتقل الي البداية ..

كيف اجعله يؤشر على آخر مكان تم التوقف عنده قبل التحويل .. وشكرا

private void textBox1_TextChanged(object sender, EventArgs e)
      {
          textBox1.Text = textBox1.Text.Replace("لا", "ال");
          textBox1.Text = textBox1.Text.Replace("لأ", "أل");


      }
#11

أضف السطر التالي أسفل الكود الأخير :

textBox1.SelectionStart=textBox1.Text.Length;

بالتوفيق :)

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…