Announcement

Collapse
No announcement yet.

Textbox: Cursorposition

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

  • Textbox: Cursorposition

    Hallo!

    Folgende Frage:

    Ich hab in meiner Applikation eine Textbox, Textausrichtung ist rechtsbündig. Ist es irgendwie möglich, dass die Eingabe, also der Cursor, an z.B folgender Position beginnt und nicht ganz rechts?

    textBox1.ClientSize.Width - 20

    danke im voraus

    mfg halbi

  • #2
    Hi,

    nein geht nicht. Aber du könntest die Ausrichtung während der Eingabe auf linksbündig setzen und nach Verlassen der TextBox wieder zurück auf rechtsbündig.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      wie geht nicht?

      gibts da überhaupt keine möglichkeit? das kann ich mir jetzt nicht vorstellen

      trotzdem danke für die schnelle antwort

      Comment


      • #4
        Geht nicht heißt dass es in .net bei TextBoxen keine Methode gibt um die Cursor-Position in Koordinaten zu setzen. Die Cursor-Pos ist an den Text gebunden - es kann die SelectionStart-Eigenschaft gesetz werden (in Abhängigkeit des Textes), aber nicht in Bezug auf die Breite.
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          ok danke.

          noch eine andere frage: wenn ich die OnPaint-Methode einer Textbox überschreibe, etwas in die Textbox zeichne und dann die Textbxo den Fokus verliert, ist der Text weg. Wie kann ich diese Problem umgehen/lösen?

          folgenden Code hab ich bis jetzt:

          Code:
          public partial class TextBoxApp : Form
              {      
          
                  public TextBoxApp()
                  {
                      InitializeComponent();            
                  }
          
                  private void button1_Click(object sender, EventArgs e)
                  {
                      if (this.aTest1.IAKey.Length == 0)
                          this.aTest1.IAKey = "SET";
                      else
                          this.aTest1.IAKey = "";
          
                      aTest1.Invalidate();
                  }
          
                  private void button2_Click(object sender, EventArgs e)
                  {
                      if (this.aTest2.IAKey.Length == 0)
                          this.aTest2.IAKey = "SET";
                      else
                          this.aTest2.IAKey = "";
          
                      aTest2.Invalidate();
                  }
          
               
          
              }
          
              public partial class CustomTextBox : System.Windows.Forms.TextBox
              {
          
                  public static int counter = 0;
          
                  private string iakey = "";
                  
                  public AtikonTextBox() : base()
                  {
                      this.SetStyle(ControlStyles.UserPaint, true);
                  }
          
                  public string IAKey
                  {
                      get { return this.iakey; }
                      set { this.iakey = value; }
                  }
          
                  
                  protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
                  {
          
                      counter++;
          
                      Console.WriteLine(counter + ": OnPaint " + this.Name + " - " + this.IAKey);
          
                      base.OnPaint(e);
          
                      if (this.iakey.Length != 0)
                      {
          
                          if(this.Name.Contains("1"))
                          {
                              e.Graphics.DrawRectangle(new Pen(Color.Blue, 2), new Rectangle(10, 5, Weite, Weite));
                          }
                          else
                          {
                              e.Graphics.FillRectangle(new SolidBrush(Color.Blue), new Rectangle(10, 5, Weite+1, Weite+1));
                          }               
                      }            
                  }
          }

          Comment

          Working...
          X