Avatar billede majbom Novice
26. januar 2006 - 18:49 Der er 21 kommentarer og
1 løsning

inputbox i c#

halløjsa eksperter :)

hvordan laver jeg en inputbox i c# hvor brugeren skal skrive en streng, der gemmes i en string?

har fundet nogle eksempler, men kunne ikke få dem til at virke.
jeg bruger visual studio 2005

på forhånd tak
Avatar billede nielle Nybegynder
26. januar 2006 - 18:57 #1
Til et Windows program eller et web program?
Avatar billede majbom Novice
26. januar 2006 - 18:58 #2
det er et windåse prog :)
Avatar billede nielle Nybegynder
26. januar 2006 - 19:03 #3
Et eksempel med en inputbox ("textBox1") og en knak ("button1"):

        private string DinStreng = "";

        private void button1_Click(object sender, EventArgs e)
        {
            DinStreng = this.textBox1.Text;
        }

Når fu trykker på knappen sendes indholdet af inputfeltet over i DinStreng.
Avatar billede majbom Novice
26. januar 2006 - 19:09 #4
sorry, jeg har vidst ikke forklaret mig ret godt, jeg prøver igen:

jeg vil gerne have en inputbox, ligesom en messagebox, bare hvor brugeren skriver noget i som så bliver lagt over i en streng, når der trykkes "ok"

håber det var bedre...
Avatar billede nielle Nybegynder
26. januar 2006 - 19:24 #5
Hmmm, jeg tror ikke at den findes "færdiglavet", men det er rimeligt let selv at lave en.
Avatar billede driis Nybegynder
26. januar 2006 - 19:49 #6
Du tager blot nielle's eksempel og designer det som du vil. Så kan du få din dialogboks vist med:

Form f = new Form1();
f.ShowDialog();

Du skal nok blot tilføje et kald til Close i button1_Click metoden.
Avatar billede nielle Nybegynder
26. januar 2006 - 20:07 #7
Der skal vist lidt mere til:

(1)

Tilføj en ny Windows Form til dit projekt. Omdøb den til at hedde InputDialog.

(2)

Sæt en TextBox og en Button på formen. Ret teksten på knappen til Ok. Flyt tingen rundt og resize formen til at den ser pæn ud.

(3)

Markër knappen. Derefter kan du nede i venstre hjørne, under Properties, finde DialogResult under Behaviour. Ret værdien af denne til OK.

(4)

Marker selve formen. Derefter kan du nede i venstre hjørne, under Properties, finde ShowGripStyle under Window Style. Ret værdien af denne til Hide.

(5)

Tilføj denne property-kode til din InputDialog-klasse:

public string InputText
{
    get { this.textBox1.Text; }
}

Bemærk: Du kan ikke bruge navnet Text idet dette allerede er i brug af din form.

(6)

Når du bruger formen fra et eller andet sted i dit program, ser koden sådan her ud:

InputDialog input = new InputDialog();
if (input.ShowDialog() == DialogResult.OK)
{
    DinStreng = input.InputText;
}
Avatar billede majbom Novice
26. januar 2006 - 21:03 #8
okay, der er ikke bare sådan en inputbox ligesom i f.eks. VB6?
det er da underligt de ikke har den med?
Avatar billede nielle Nybegynder
26. januar 2006 - 21:11 #9
Den er der ikke i C#, men VB.Net har den! Og den kan man godt bruge fra C# programmer efter lidt øvelser:

http://www.reflectionit.nl/InputBox.aspx
Avatar billede bitsch Nybegynder
26. januar 2006 - 22:03 #10
Note:

Man kan godt kalde InputText for Text (men man kan også dislutere om man skal). Følgende kode er for eksemplets skyld.

        public new string Text
        {
            get{ return this.textBox.Text; }
            set{ this.textBox.Text = value; }
        }

        public string Caption
        {
            get{ return base.Text; }
            set{ base.Text = value; }
        }

Husk at sætte AcceptButton til Ok knappen!

Man kan også med fordel sætte:
MaximizeBox = false
MinimizeBox = false
(ShowIcon = false)

Hvis man så derudover laver en ny constructor:

        public InputDialog(string caption) : this()
        {
            this.Caption = caption;
        }

Så kan man kalde sin dialog således:

            InputDialog input = new InputDialog("My Caption");
           
            if (input.ShowDialog() == DialogResult.OK)
            {
                MessageBox.Show(input.Text);
            }


Bemærk at Windows Forms Designeren ikke er så glad for overskrevne properties, så man må klare sig med "håndkraft".
Avatar billede bitsch Nybegynder
26. januar 2006 - 22:06 #11
Nej hvor jeg dog staver godt ;-)
Avatar billede skwat Praktikant
27. januar 2006 - 02:14 #12
Jeg har selv lavet en version bygget på http://www.reflectionit.nl/InputBox.aspx, som er en lidt fed implementation af en inputbox.
Virker som en messegebox. Man kalder .show, får returneret en inputboxresult, som indenholder værdi af textox, og om der er trykket cancel eller OK.
Oven i hatten kan man lave validering, og vise en errorprovider - totalt i orden, i følge mig ;-)
Avatar billede bitsch Nybegynder
27. januar 2006 - 06:52 #13
Bortset fra at vi ikke har været inde på validering så er vores besvarelser identisk med den løsning du har valgt.
Avatar billede majbom Novice
27. januar 2006 - 07:36 #14
godmorgen :)

jeg har prøvet med den fra reflectionit.nl, men den virkede ikke helt...
den siger at den mangler "InputBoxValidatingHandler", "InputBoxResult" og "InputBoxValidatingArgs"
Avatar billede majbom Novice
27. januar 2006 - 07:43 #15
arh, kunne være at jeg skulle lære at læse, jeg har hentet eksemplet fra siden osse...
jeg ser om jeg kan få det til at virke senere, tak for hjælpen indtil videre :)

go' dag!
Avatar billede nielle Nybegynder
27. januar 2006 - 09:04 #16
bitsch> Det er jeg nu ikke helt enig i. Løsningsmodellen fra 26/01-2006 20:07:51 og 26/01-2006 22:03:32 laver dialogen helt fra bunden af, mens løsningen baseret på http://www.reflectionit.nl/InputBox.aspx udnytter at VB.NET allerede har en InputBox, og at denne "blot" skal tilrettes. Resultatet er dog det samme, og man kan argumentere for og i mod om der overhovedet er vundet noget ved at tilpasse den eksisterende, eller selv at lave det hele fra bunden af.

skwat> Formelt set bør du kalde ShowDialog() i stedet for Show() hvis du skal have den rette adfærd.
Avatar billede skwat Praktikant
27. januar 2006 - 22:57 #17
nielle, har du læst det hele der står på den side? Der er cirka 0% af det du siger der er korrekt
Avatar billede majbom Novice
03. februar 2006 - 12:49 #18
har fået det til at virke med bitsch' (26/01-2006 22:03:32) vejledning...

takker for hjælpen
Avatar billede bitsch Nybegynder
03. februar 2006 - 15:17 #19
Ja men det er da rart at høre.
Avatar billede nielle Nybegynder
03. februar 2006 - 17:02 #20
Hmmm, var det ikke "blot" en tilføjelse til den del jeg allerede havde lavet?
Avatar billede majbom Novice
03. februar 2006 - 21:49 #21
-> nielle, jeg gik KUN ud fra bitsch' eksempel, dvs at jeg lavede det helt fra bunden af...
Avatar billede nielle Nybegynder
04. februar 2006 - 09:48 #22
Fair nok. :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester