Announcement

Collapse
No announcement yet.

letztes hinzugefügtes zeichen in einer textbox ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • letztes hinzugefügtes zeichen in einer textbox ermitteln

    Hallo,

    ich muß zur eingabe überpüfung das letzte eingefügte zeichen einer Textbox ermitteln können. ich kann ja über das event textchanged eine Texteingabe abfangen aber ich finde keinen Parameter der mir sagt welches Zeichen hinzu gefügt wurde, bzw. die Position.

    weis jemand wies geht?

    mfg
    Zebes

  • #2
    Hallo,

    das Problem sollte sich mit dem folgenden Beispiel lösen lassen:

    Code:
            string sLastValue = String.Empty;
    
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                if (sLastValue.Length == 0)
                {
                    listBox1.Items.Add(textBox1.Text.Substring(textBox1.Text.Length - 1, 1));
                }
                else
                {
                    for (int i = 0; i < textBox1.Text.Length; i++) 
                    {
                        if (i == sLastValue.Length)
                        {
                            listBox1.Items.Add(textBox1.Text[i]);
                        }
                        else
                        {
                            if (!sLastValue[i].Equals(textBox1.Text[i]))
                            {
                                listBox1.Items.Add(textBox1.Text[i]);
                                sLastValue = textBox1.Text;
                                return;
                            }
                        }
                    }
                }
                sLastValue = textBox1.Text;
            }
    Zuletzt editiert von Andreas Kosch; 19.07.2007, 07:10.

    Comment


    • #3
      also so richtig verstehe ich nicht was du da machst. voe allem was hat es mit der listbox auf sich? ich habe lediglich eine text box. den letzten gültigen wer zu speicher ist alerdings eine idee. ich könnte feststellen ob bei veränderung der string noch gültig ist ansonsten neme ich den letzten gültigen.

      mfg
      Zebes

      Comment


      • #4
        Hallo,

        Also wenn du die Copy/Paste funktion außen vor lassen kannst,
        solltest du einfach das KeyDown oder KeyPress event verwenden und das letzte Char temp. speichern.
        Grüße,

        Martin

        Comment


        • #5
          ja das wäre eine idee, nur leider kann ich doch ein paste nicht verhindern oder? wie sieht es denn aus wenn dann eine der "f" tasten gedrükt wird? zählt das nicht als key down event?

          mfg
          Zebes

          Comment


          • #6
            Hallo,

            Also das Paste über Control + v, kann man im KeyDown schon verhindern:
            Code:
            			if (e.Control && (e.KeyCode==Keys.V))
            				e.Handled = true;
            Über die rechte Mouse Taste müßte man die "ContextMenu" Eigenschaft verändern!

            Die zulässige eingabe könnte man im KeyPress event validieren.
            Code:
            			//Ist nicht dezimal oder alpha Zeichen
            			if(!Char.IsDigit(e.KeyChar) || !Char.IsLetter(e.KeyChar))
            			{
            				e.Handled=true;
            			}
            Grüße,

            Martin

            Comment

            Working...
            X