listbox1.items.add

  • C#

    listbox1.items.add

    hy

    ich habe eine konsolen anwendung die ich gerne in eine form setzten würde, da der text ja in die konsole geschrieben wird, wollte ich es in eine listbox schreiben.
    leider bekomme ich eine fehlermeldung:
    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    nullreferenceexebition was unhandelet

    der code

    C#-Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Speech;
    10. using System.Speech.Recognition;
    11. namespace WindowsFormsApplication2
    12. {
    13. public partial class Form1 : Form
    14. {
    15. public Form1()
    16. {
    17. // Hier werden recognition-engine und grammar vorbereitet. SpeechRecognitionEngine bedeutet, dass nur unser Programm auf die Spracherkennung zugreift.
    18. listBox1.Items.Add("test");
    19. MessageBox.Show("Firing up speech-demo");
    20. SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
    21. recognizer.SetInputToDefaultAudioDevice();
    22. // hier setzen wir einen Event-Handler für das "Recognized"-Event. Es gibt noch eine Menge anderer Events.
    23. // Die aufgerufene Funktion recognizer_SpeechRecognized wird aufgerufen.
    24. recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
    25. // der try-catch block ist eigentlich optional, aber ich hatte am Anfang so viele Exceptions, dass ich ihn drin gelassen habe.
    26. try
    27. {
    28. Grammar grammar = new Grammar("grammar.xml", "thema");
    29. recognizer.UnloadAllGrammars();
    30. recognizer.LoadGrammar(grammar);
    31. // mit folgender Zeile wird die eigentliche Erkennung gestartet.
    32. recognizer.RecognizeAsync(RecognizeMode.Multiple);
    33. }
    34. catch (Exception e)
    35. {
    36. // listBox1.Items.Add("Exception aufgetreten: " + e.Message);
    37. return;
    38. }
    39. // wenn wir es bis hier geschafft haben, ist alles ok. Das zeigen wir dem Benutzer an...
    40. //listBox1.Items.Add ("Speech-Engine up and running");
    41. // ... und gehen in eine Schleife, die auf Tastendruck beendet wird (und mit ihr auch das Programm).
    42. //while (!Console.KeyAvailable)
    43. {
    44. System.Threading.Thread.Sleep(100);
    45. }
    46. // Console.WriteLine("terminating.");
    47. // Jetzt noch schnell aufräumen.
    48. recognizer.Dispose();
    49. return;
    50. }
    51. // Diese Funktion wird aufgerufen, sobald etwas erkannt wurde.
    52. // In e.Result.Text steht der erkannte Text.
    53. private static void recognizer_SpeechRecognized(object sender, System.Speech.Recognition.SpeechRecognizedEventArgs e)
    54. {
    55. // Console.WriteLine(e.Result.Text + " (" + e.Result.Confidence.ToString() + ")");
    56. }
    57. }
    58. }

    danke für die hilfe
    muss ich bei c# die listbox aktivieren, nach dem ich sie auf die form gezogen habe?

    Edit: ich habs

    das fehlte:
    InitializeComponent();
    nur hier
    while (!Console.KeyAvailable)
    hab ich leider keine ahnung wie ich die schleife in der form machen soll ?!?

    Edit by Agent: VB-Tag für C#-Code?? VB-Tag entfernt!

    *Topic verschoben*
    ähh? wasn das :)

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „nikeee13“ ()