Discussion:
Input Box
(zu alt für eine Antwort)
Andre Grumbach
2005-05-12 13:49:36 UTC
Permalink
Hallo NG,
ich habe noch einmal eine Frage.
Meines Wissens gab es früher in VB eine InputBox, die ähnlich einer
MessageBox aufpoppen kann und man einen Text eingeben kann.
Ich finde dieses Control jedoch nicht in C#.

Gibt es dieses Control wirklich nicht oder finde ich es nur nicht, bzw. wie
heißt es dann?


Dankbar für euere Hilfe,
Andre Grumbach
Arne Janning
2005-05-12 14:28:16 UTC
Permalink
"Andre Grumbach" schrieb
Post by Andre Grumbach
ich habe noch einmal eine Frage.
Meines Wissens gab es früher in VB eine InputBox, die ähnlich einer
MessageBox aufpoppen kann und man einen Text eingeben kann.
Ich finde dieses Control jedoch nicht in C#.
Gibt es dieses Control wirklich nicht oder finde ich es nur nicht, bzw.
wie heißt es dann?
Du hast die Frage falsch gestellt:

C# ist nichts weiter als Syntax, die Windows.Forms-Controls sind Teil der
Base Class Library, die prinzipiell mit C# erst mal nichts zu tun hat. Es
gibt keine eingebauten "Controls" in C#, von Sprachfunktionen wie InputBox()
oder MsgBox() ganz zu schweigen. Man kann darüber streiten, ob das ein gutes
Konzept ist (vorherrschende Meinung) oder ein schlechtes (Herfrieds Meinung,
wenn er streitlustig wird).

Microsoft hat für die VB-ler die
Microsoft.VisualBasic.Interaction.InputBox()-Funktion geschaffen,
prinzipiell kannst Du diese Funktion auch von C# aus nutzen, wenn Du die
Microsoft.VisualBasic.dll referenzierst. Diese Funktion baut die bekannte
VB-InputBox-Funktion aber auch nur mit Windows.Forms-Mitteln nach, zudem
gilt sie als total "verbuggt".

Besser ist es also, die InputBox als eine eigene System.Windows.Form zu
erstellen und selbst zu implementieren, oder sich den Code eben irgendwo
zusammenzuklauen:
http://groups.google.to/groups?selm=%23kvgfA0MEHA.556%40TK2MSFTNGP10.phx.gbl

Gruß

Arne Janning
Andre Grumbach
2005-05-12 14:52:46 UTC
Permalink
Danke für die Bestätigung und die Info das ich eine VB DLL einbinden kann.
Ich finde das mit der DLL nicht gerade die schönste lösung, deswegen werde
ich mir eine eigene Form machen (bzw. hab sie sogar schon).


Gruß,
Andre
Post by Arne Janning
"Andre Grumbach" schrieb
Post by Andre Grumbach
ich habe noch einmal eine Frage.
Meines Wissens gab es früher in VB eine InputBox, die ähnlich einer
MessageBox aufpoppen kann und man einen Text eingeben kann.
Ich finde dieses Control jedoch nicht in C#.
Gibt es dieses Control wirklich nicht oder finde ich es nur nicht, bzw.
wie heißt es dann?
C# ist nichts weiter als Syntax, die Windows.Forms-Controls sind Teil der
Base Class Library, die prinzipiell mit C# erst mal nichts zu tun hat. Es
gibt keine eingebauten "Controls" in C#, von Sprachfunktionen wie
InputBox() oder MsgBox() ganz zu schweigen. Man kann darüber streiten, ob
das ein gutes Konzept ist (vorherrschende Meinung) oder ein schlechtes
(Herfrieds Meinung, wenn er streitlustig wird).
Microsoft hat für die VB-ler die
Microsoft.VisualBasic.Interaction.InputBox()-Funktion geschaffen,
prinzipiell kannst Du diese Funktion auch von C# aus nutzen, wenn Du die
Microsoft.VisualBasic.dll referenzierst. Diese Funktion baut die bekannte
VB-InputBox-Funktion aber auch nur mit Windows.Forms-Mitteln nach, zudem
gilt sie als total "verbuggt".
Besser ist es also, die InputBox als eine eigene System.Windows.Form zu
erstellen und selbst zu implementieren, oder sich den Code eben irgendwo
http://groups.google.to/groups?selm=%23kvgfA0MEHA.556%40TK2MSFTNGP10.phx.gbl
Gruß
Arne Janning
Arne Janning
2005-05-12 14:59:34 UTC
Permalink
Hallo Andre!

"Andre Grumbach" schrieb
Post by Andre Grumbach
Danke für die Bestätigung und die Info das ich eine VB DLL einbinden kann.
Noch einmal: es gibt in .NET keine "VB-DLLs". Das, was der der
VB.NET-Compiler produziert, also Metadaten und Zwischencode, ist
selbstverständlich von jeder anderen .NET-Sprache aus nutzbar. Man sollte
IMHO sogar aufhören, vbc oder csc "Compiler" zu nennen, das führt nur zu
Verwirrung.

Gruß

Arne Janning
Herfried K. Wagner [MVP]
2005-05-12 17:43:02 UTC
Permalink
Hallo Arne!
Post by Arne Janning
Microsoft hat für die VB-ler die
Microsoft.VisualBasic.Interaction.InputBox()-Funktion geschaffen,
prinzipiell kannst Du diese Funktion auch von C# aus nutzen, wenn Du die
Microsoft.VisualBasic.dll referenzierst. Diese Funktion baut die bekannte
VB-InputBox-Funktion aber auch nur mit Windows.Forms-Mitteln nach, zudem
gilt sie als total "verbuggt".
In VB 2005 wird in Bezug auf 'InputBox' alles besser: Man kann sogar
bestimmen, ob "Abbrechen" angeklickt wurde. Dennoch empfehle auch ich, ein
eigens angepasstes Eingabeformular zu erstellen.
--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Basti Wiesner
2005-05-12 14:31:39 UTC
Permalink
Hallo Andre,

Im .NET Framework gibt es die InputBox nicht direkt.
Allerdings kannst du in deiner Anwendung auf die
Microsoft Visual Basic .NET Runtime (Microsoft.VisualBasic.dll)
verweisen. Dann steht die die InputBox zu Verfügung:

Beispiel (erfordert den oben genannten Verweis):

using Microsoft.VisualBasic;

publci static void Main() {
String s = Interaction.InputBox("Dies ist ein Test", "Test", "Standardantwort", -1, -1);
}

Allerdings sollte es auch nicht schwer sein die InputBox nachzubauen.


Gruß
Basti
Lesen Sie weiter auf narkive:
Loading...