Entwickler-Ecke
WinForms - Textbox Textmarkierung verhindern
c#ler - Do 07.07.11 17:47
Titel: Textbox Textmarkierung verhindern
Hallo,
Ich möchte, dass bei meiner Textbox der Inhalt nichtmehr zu markieren geht.
Ich habe schon diverses über Readonly gelesen, dies funktioniert leider nicht.
Es handelt sich hier um die ganz einfache Textbox im .netCF 3.5
Wenn Ich die Textbox auf enabled = false setze kann ich zwar nichts mehr markieren, aber leider auch nichtmehr scrollen :(
Hat jemand eine Idee?
daeve - Do 07.07.11 18:35
Hallo
bin mir nicht sicher, ist nur so aus dem Kopf... gibt es nicht eine Locked() methode ?
hab nachgeschaut... sry habe mich geirrt..
Th69 - Do 07.07.11 19:14
Hallo C#ler,
mit ReadOnly verhinderst du nur das Ändern des Textes, aber eine Selektion ist weiterhin möglich. Ich wüßte auch nicht, wie man dies direkt verhindern kann (insbesondere bei der eingeschränkten Funktionalität der CF-TextBox).
Das einzige, das mir einfällt, wäre indem du einen Timer (z.B. mit 100ms) benutzt und dort dann "SelectionLength" immer auf 0 setzt.
I.c.h - Fr 08.07.11 06:22
Morgen,
ich habe grade mal in meiner alten Projektsammlung gewühlt. Ich habe es damals auch über einen Timer und die SelectionLength gelöst.
Etwas unschön ist allerdings, dass beim Versuch Text zu markieren, ein kurzes Aufblitzen statt findet (auch bei Timerintervall von 1ms). Optimal ist es also nicht unbedingt.
c#ler - Fr 08.07.11 11:33
Vielen Dank,
hat soweit funktioniert, aber schön ist es wirklich nicht^^ und die Cursorposition ist im Textfeld.
Kann ich die nicht irgendwie auf einen Button setzen, sobald der Text markiert wird?
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private void timer1_Tick(object sender, EventArgs e) { textBox1.SelectionLength = 0; _btn_zurück.Focus();
} |
aber dann kann ich die textbox nichtmehr aus der Advancedlist heraus aufrufen...
Ich weiß nicht warum..
im Designer habe ich:
C#-Quelltext
1:
| this.textBox1.GotFocus += new System.EventHandler(this.timer1_Tick); |
Jemand ne Idee, wie ich das machen kann? (Cursor auf Button setzen oder ausblenden?)
Dr. Hallo - Fr 08.07.11 13:39
Musst nur evtl coredll durch user32 ersetzen
vg
c#ler - Fr 08.07.11 13:45
Vielen Dank für die Antworten,
funktioniert =)
Chiyoko - Sa 09.07.11 11:48
Ich hab das auch ohne irgendwelche Imports hinbekommen, da ich keine Dlls mag:p
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| private void txtbox_Click(object sender, MouseEventArgs e) { RichTextBox rtb_test = sender as RichTextBox; if (rtb_test != null && rtb_test.Text.Length != 0) { if (e.Clicks == 1 && rtb_test.Focused) { rtb_test.Select(0, 0); this.pan_help.Focus(); this.pan_help.AutoScrollPosition = new Point(0,0); } else { this.pan_help.Focus(); this.pan_help.AutoScrollPosition = new Point(0, 0); } } } |
Das funktioniert vor allem im zusammenhang mit Autoscroll:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| private void Mausrad_panel(object sender, MouseEventArgs e) { if (sender == this.pan_help) { this.pan_help.VerticalScroll.Value += 1; this.pan_help.Refresh(); this.pan_help.Invalidate(); this.pan_help.Update(); } } private void Mausklick_panel(object sender, MouseEventArgs e) { if (sender == this.pan_help) { this.pan_help.Select(); } } |
c#ler - Mo 11.07.11 10:55
Chiyoko hat folgendes geschrieben : |
Ich hab das auch ohne irgendwelche Imports hinbekommen, da ich keine Dlls mag:p
|
Ich auch :) bzw. ich auch nicht :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!