Ergebnis 1 bis 2 von 2

Thema: String von Serieller Schnittstelle an TextBox anzeigen

  1. #1
    Unregistriert
    Gast

    Standard String von Serieller Schnittstelle an TextBox anzeigen

    Hallo,

    ich beschäftige mich nun seit einiger Zeit mit C++ 2008 und Versuche gerade einen String, den ich über eine Serielle Schnittstelle einlese, in einer TextBox anzuzeigen.
    Wenn ich das Programm ohne Debug starte, läuft es und der String wird auch angezeigt. Doch wenn ich es mit Debug strate, kommt immer folgende Fehlermeldung, sobald das Event der Seriellene Schnittstelle auf die TextBox der Form1 schreibend zugreifen will.

    „Eine nicht behandelte Ausnahme des Typs "System.InvalidOperationException" ist in System.Windows.Forms.dll aufgetreten.

    Zusätzliche Informationen: Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement textBox1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.“

    Ich habe nun schon in einegen Foren nachgelesen und auch in Büchern nachgeschlagen, doch eine gute Erklärung bzw. Problemlösung habe ich noch nirgends gefunden.

    Könnte mir da vielleicht jemand weiterhelfen?
    Hier ist noch mein Quellcode der Form1 Anwendung.

    Mit freundlichen Grüßen

    Julian


    [CODE]
    #pragma once

    namespace Hauptprojektdatei
    { using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System:ata;
    using namespace System:rawing;
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
    Form1(void)
    { InitializeComponent();
    serialPort1->Open();
    serialPort1->Write("bf");
    serialPort1->Write("#\r");
    }

    protected:
    ~Form1()
    { if (components)
    {
    delete components;
    }
    }
    private: System::Windows::Forms::TextBox^ textBox1;
    protected:
    private: System::IO::Ports::SerialPort^ serialPort1;
    private: System::ComponentModel::IContainer^ components;
    private:
    #pragma region Windows Form Designer generated code

    void InitializeComponent(void)
    {
    this->components = (gcnew System::ComponentModel::Container());
    this->textBox1 = (gcnew System::Windows::Forms::TextBox());
    this->serialPort1 = (gcnew System::IO::Ports::SerialPort(this->components));
    this->SuspendLayout();
    // textBox1
    this->textBox1->Location = System:rawing::Point(12, 100);
    this->textBox1->Name = L"textBox1";
    this->textBox1->Size = System:rawing::Size(261, 22);
    this->textBox1->TabIndex = 0;
    // serialPort1
    this->serialPort1->DataReceived += gcnew System::IO::Ports::SerialDataReceivedEventHandler( this, &Form1::received_date);
    // Form1
    this->AutoScaleDimensions = System:rawing::SizeF(8, 16);
    this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    this->ClientSize = System:rawing::Size(292, 150);
    this->Controls->Add(this->textBox1);
    this->Name = L"Form1";
    this->StartPosition = System::Windows::Forms::FormStartPosition::CenterS creen;
    this->Text = L"Form1";
    this->ResumeLayout(false);
    this->PerformLayout();
    }
    #pragma endregion
    private: System::Void received_date(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e)
    { String^ daten;

    daten=serialPort1->ReadTo("#\r");
    textBox1->Text=daten;
    }
    };
    }
    [\Code]
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: String von Serieller Schnittstelle an TextBox anzeigen

    Schau mal nach "Mutex", vielleicht macht der das nur, wenns entsprechend geschützt ist.
    Aber warum lernst du eigentlich VisualC++ und nicht Standard-C++? Mit ISO-C++ bist du von etwaigen Launen Microsofts unabhängig und es ist garantiert, dass deine Programme auch mit anderen Compilern oder Systemen laufen.

    Noch ein Hinweis:
    Verwende die "using namespace"-Direktive nicht innerhalb eines Namespaces sondern außerhalb, sonst machst du ja noch deinen eigenen Namespace kaputt.

    Viele liebe Grüße
    The User

Ähnliche Themen

  1. Textbox mailen?
    Von Greg10 im Forum HTML & CSS Forum
    Antworten: 13
    Letzter Beitrag: 12.05.2007, 23:25
  2. Textbox verstecken
    Von Jan_d32005 im Forum HTML & CSS Forum
    Antworten: 17
    Letzter Beitrag: 12.05.2007, 19:51
  3. Python String mit html tags anzeigen
    Von okasankar im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 3
    Letzter Beitrag: 02.04.2007, 23:45
  4. PlugIn-Schnittstelle realisieren
    Von vbtricks im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 09.01.2007, 20:17
  5. Textbox Eingaben abfangen
    Von speedy im Forum Forum-Hilfe.de intern
    Antworten: 2
    Letzter Beitrag: 24.06.2004, 15:05

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •