Benutzer mit den meisten Antworten
C# TextBox "disablen" und trotzdem Text anzeigen

Frage
-
Hey,
ich habe einige RadioButtons und TextBoxes.
Je nach Auswahl der RadioButtons möchte ich die ein oder andere TextBox "disablen" UND einen Text festlegen, welcher zu sehen sein muss.
Folgendes habe ich ausprobiert:
private void Transportauftrag_CheckedChanged(object sender, EventArgs e) { TextBox1.Enable = false; TextBox1.Text = "FFFF"; }
Hiermit wird meine TextBox zwar "disabled" aber den Text sehe ich nicht.
Auch mit "ReadOnly" hat dies leider nicht funktioniert (Ich kann dann den Text zwar nicht bearbeiten aber dennoch in die TextBox rein klicken UND meine TextBox wird nicht ausgegraut).
Jemand eine Idee wie ich dieses Problem lösen kann?
Antworten
-
Hi,
Du kannst die TextBox mit einer Label überlagern und wechselseitig die Sichtbarkeit steuern. Hier mal eine Demo dazu:using System; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form11 : Form { public Form11() { InitializeComponent(); } private CheckBox cb = new CheckBox { Text = "Select State" }; private TextBox tb1 = new TextBox { Top = 30 }; private Label lbl1 = new Label { Top = 33, Text = "unsichtbar 1" }; private TextBox tb2 = new TextBox { Top = 60 }; private Label lbl2 = new Label { Top = 63, Text = "unsichtbar 2" }; private void Form11_Load(object sender, EventArgs e) { this.Controls.AddRange(new Control[] { tb2, lbl2, tb1, lbl1, cb }); Binding b1 = new Binding("Checked", this, "CbChecked", true, DataSourceUpdateMode.OnPropertyChanged); cb.DataBindings.Add(b1); tb1.DataBindings.Add("Text", this, "Text1"); tb2.DataBindings.Add("Text", this, "Text2"); CbChecked = false; } private bool _cbChecked; public bool CbChecked { get { return this._cbChecked; } set { this._cbChecked = value; tb1.Visible = value; lbl1.Visible = !value; tb2.Visible = !value; lbl2.Visible = value; } } public string Text1 { get; set; } = "Text 1"; public string Text2 { get; set; } = "Text 2"; } }
--
Best Regards / Viele Grüße
Peter Fleischer (former MVP for Developer Technologies)
Homepage, Tipps, Tricks
- Bearbeitet Peter Fleischer Donnerstag, 7. November 2019 09:48 Code korrigiert
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Montag, 11. November 2019 08:29
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Mittwoch, 20. November 2019 07:46
Alle Antworten
-
Hi,
Du kannst die TextBox mit einer Label überlagern und wechselseitig die Sichtbarkeit steuern. Hier mal eine Demo dazu:using System; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form11 : Form { public Form11() { InitializeComponent(); } private CheckBox cb = new CheckBox { Text = "Select State" }; private TextBox tb1 = new TextBox { Top = 30 }; private Label lbl1 = new Label { Top = 33, Text = "unsichtbar 1" }; private TextBox tb2 = new TextBox { Top = 60 }; private Label lbl2 = new Label { Top = 63, Text = "unsichtbar 2" }; private void Form11_Load(object sender, EventArgs e) { this.Controls.AddRange(new Control[] { tb2, lbl2, tb1, lbl1, cb }); Binding b1 = new Binding("Checked", this, "CbChecked", true, DataSourceUpdateMode.OnPropertyChanged); cb.DataBindings.Add(b1); tb1.DataBindings.Add("Text", this, "Text1"); tb2.DataBindings.Add("Text", this, "Text2"); CbChecked = false; } private bool _cbChecked; public bool CbChecked { get { return this._cbChecked; } set { this._cbChecked = value; tb1.Visible = value; lbl1.Visible = !value; tb2.Visible = !value; lbl2.Visible = value; } } public string Text1 { get; set; } = "Text 1"; public string Text2 { get; set; } = "Text 2"; } }
--
Best Regards / Viele Grüße
Peter Fleischer (former MVP for Developer Technologies)
Homepage, Tipps, Tricks
- Bearbeitet Peter Fleischer Donnerstag, 7. November 2019 09:48 Code korrigiert
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Montag, 11. November 2019 08:29
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Mittwoch, 20. November 2019 07:46
-
Vielleicht verstehe ich das ja falsch, aber wenn ich ein die Enabled- Eigenschaft einer TextBox in einem WinForms-Projekt auf false setze, sehe ich sowohl den Text!
Hast du irgendwo in deinem Projekt die Fareben der TextBox (Foreground, Background) verändert?
Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP
-
Hi Stefan,
die Aufgabenstellung war aber, im Fall des "Versteckens" einen anderen nicht editierbaren Text anzuzeigen. Ich habe dafür mein gepostetes Beispiel geändert.--
Best Regards / Viele Grüße
Peter Fleischer (former MVP for Developer Technologies)
Homepage, Tipps, Tricks