Discussion:
Wie kann ich ermitteln welche Textbox aktiv ist
(zu alt für eine Antwort)
Bernhard Schneider
2006-07-22 17:04:32 UTC
Permalink
Hallo Neswgroup,

Ich habe folgendes Probem, wie kann ich ermitteln welche von 4 Textboxen
gerade aktiv ist ohne mich auf einem Mausklick verlassen zu müssen

Danke im voraus
Bernhard Schneider
Thomas Scheidegger [MVP]
2006-07-22 17:11:02 UTC
Permalink
Hallo Bernhard
wie kann ich ermitteln welche von 4 Textboxen gerade aktiv ist
zB auf Basis:
Control.Focused
--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
Bernhard Schneider
2006-07-22 17:29:04 UTC
Permalink
Sorry Ich habe die Frage echt übel gestellt

Ich wollte ermitteln welche textbox vor dem Klick auf einem Button Aktiv
wahr

Danke
Bernhard
Post by Thomas Scheidegger [MVP]
Hallo Bernhard
wie kann ich ermitteln welche von 4 Textboxen gerade aktiv ist
Control.Focused
--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
Thomas Scheidegger [MVP]
2006-07-22 17:47:19 UTC
Permalink
Ich wollte ermitteln welche textbox vor dem Klick auf einem Button Aktiv wahr
ist zwar eher ungewöhnlich, dass dies eine Rolle spielen soll...


Ich vermute, eine mögliche Lösung ist zB über

entweder Control.Enter oder Control.Leave - Events
http://msdn2.microsoft.com/de-de/library/system.windows.forms.control.enter.aspx
http://msdn2.microsoft.com/de-de/library/system.windows.forms.control.leave.aspx

für alle 4 Textboxen,
dann im Event-Handler sich die letzte Textbox (zB 'sender'-Parameter) merken....
--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
George
2006-07-22 18:00:30 UTC
Permalink
Hallo!

Also ich habe von dieser Entwicklungsumgebung wahrscheinlich die wenigste
Ahnung, aber ich hatte so ein Problem mal unter einer anderen Umgebung und
mir sind damals zwei Lösungen eingefallen, die auch beide funktionierten.
Eine History implementieren; Du schreibst jedes Mal wenn irgendein Element
den Focus verliert dessen Bezeichnung, index oder was auch immer in ein
Array. Oder Du fängst das Ereignis MouseEnter auf den betreffenden Button ab
und prüfst mit Control.Focused welches Textfeld jetzt noch den Focus
besitzt.Müsste auch unter C# klappen!



Gruß,

George




Also ich habe von dieser Entwicklungsumgeben
Post by Bernhard Schneider
Sorry Ich habe die Frage echt übel gestellt
Ich wollte ermitteln welche textbox vor dem Klick auf einem Button Aktiv
wahr
Danke
Bernhard
Post by Thomas Scheidegger [MVP]
Hallo Bernhard
wie kann ich ermitteln welche von 4 Textboxen gerade aktiv ist
Control.Focused
--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
Frank Dzaebel
2006-07-22 18:22:58 UTC
Permalink
Hallo George,
Oder Du fängst das Ereignis MouseEnter auf den betreffenden Button ab und
prüfst mit Control.Focused welches Textfeld jetzt noch den Focus besitzt.
Müsste auch unter C# klappen!
würde im grob klappen, aber ein Focus kann
auch (z.B.) über TAB gewechselt werden. Da würde das
MouseEnter nicht greifen.


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
George
2006-07-22 20:37:17 UTC
Permalink
Stimmt, hatte mich auch für die andere Lösung entschieden, die hat soweit
funktioniert....
Post by Frank Dzaebel
Hallo George,
Oder Du fängst das Ereignis MouseEnter auf den betreffenden Button ab und
prüfst mit Control.Focused welches Textfeld jetzt noch den Focus besitzt.
Müsste auch unter C# klappen!
würde im grob klappen, aber ein Focus kann
auch (z.B.) über TAB gewechselt werden. Da würde das
MouseEnter nicht greifen.
ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Frank Dzaebel
2006-07-22 18:01:04 UTC
Permalink
Hallo Bernhard,
Post by Bernhard Schneider
Sorry Ich habe die Frage echt übel gestellt
Ich wollte ermitteln welche textbox vor dem Klick auf einem Button Aktiv wahr
Dann zum Beispiel (variierbar):

private void Form1_Load(object sender,EventArgs e)
{ FocusHandlerZufügen(this);
}

private void button1_Click(object sender,EventArgs e)
{ if (lastFocusedTextBox == null)
MessageBox.Show("keine TextBox vorher fokussiert");
MessageBox.Show(lastFocusedTextBox.Name);
}

private void FocusHandlerZufügen(Control control)
{ foreach (Control ctl in control.Controls)
{ if (ctl.Controls.Count > 0) FocusHandlerZufügen(ctl);
if (ctl is TextBox)
((TextBox)ctl).GotFocus += new EventHandler(AllTextBoxes_GotFocus);
}
}

TextBox lastFocusedTextBox;
void AllTextBoxes_GotFocus(object sender,EventArgs e)
{ lastFocusedTextBox = (TextBox)sender;
}


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Frank Dzaebel
2006-07-22 18:08:51 UTC
Permalink
Kleiner Fehler war noch drin:

private void Form1_Load(object sender,EventArgs e)
{
FocusHandlerZufügen(this);
}

private void button1_Click(object sender,EventArgs e)
{
if (lastFocusedTextBox == null)
{
MessageBox.Show("keine TextBox vorher fokussiert");
return;
}
MessageBox.Show(lastFocusedTextBox.Name);
}

private void FocusHandlerZufügen(Control control)
{
foreach (Control ctl in control.Controls)
{
if (ctl.Controls.Count > 0) FocusHandlerZufügen(ctl);
if (ctl is TextBox)
((TextBox)ctl).GotFocus += new EventHandler(AllTextBoxes_GotFocus);
}
}

TextBox lastFocusedTextBox;
void AllTextBoxes_GotFocus(object sender,EventArgs e)
{
lastFocusedTextBox = (TextBox)sender;
}


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Herfried K. Wagner [MVP]
2006-07-22 19:30:15 UTC
Permalink
Post by Bernhard Schneider
Ich habe folgendes Probem, wie kann ich ermitteln welche von 4 Textboxen
gerade aktiv ist ohne mich auf einem Mausklick verlassen zu müssen
'Form.ActiveControl'.
--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Frank Dzaebel
2006-07-22 20:08:44 UTC
Permalink
Hallo Herfried,
Post by Herfried K. Wagner [MVP]
Post by Bernhard Schneider
Ich habe folgendes Probem, wie kann ich ermitteln welche von 4 Textboxen
gerade aktiv ist ohne mich auf einem Mausklick verlassen zu müssen
'Form.ActiveControl'.
Post by Bernhard Schneider
"Ich wollte ermitteln welche textbox *vor* dem
Klick auf einem Button Aktiv wahr"
ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Loading...