Laden...

"Der Zugriff auf das Steuerelement xxxx erfolgte von einem anderen Thread"

Erstellt von Da_Flo vor 14 Jahren Letzter Beitrag vor 14 Jahren 749 Views
D
Da_Flo Themenstarter:in
269 Beiträge seit 2009
vor 14 Jahren
"Der Zugriff auf das Steuerelement xxxx erfolgte von einem anderen Thread"

hallo!

Also ich weis das man auf steuerelemente nicht von einem anderen Thread aus zugreifen kann.

hier mal der code:

        
private void Table_CurrentCellChanged(object sender, EventArgs e)
        {
            if (screen_Artikel1.Table.CurrentRow != null)
            {

              /*  Invoke((MethodInvoker)delegate()
                    {
                        TB_E_Kategorie.Text = screen_Artikel1.Table.CurrentRow.Cells["Kategorie"].ToString();
                        TB_P_Kategorie.Text = screen_Artikel1.Table.CurrentRow.Cells["Kategorie"].ToString();
                        TB_Kabel_Kategorie.Text = screen_Artikel1.Table.CurrentRow.Cells["Kategorie"].ToString();
                    }
                );*/

                

                CB_SendProE.Checked = Convert.ToBoolean(screen_Artikel1.Table.CurrentRow.Cells["proeModell"].Value);
                int artikelnr = Convert.ToInt32(screen_Artikel1.Table.CurrentRow.Cells["nr"].Value);
                if (!CB_Varianten.Checked && !CB_ohneArtikel.Checked)
                {
                    fillParameterTableFromArtikel(artikelnr);
                    setStandardparameter (Parameters.SCHABLONENNR,screen_Artikel1.Table.CurrentRow.Cells ["Schablonennr"].Value.ToString ());
                    setStandardparameter (Parameters.ARTIKELNR, screen_Artikel1.Table.CurrentRow.Cells ["kurzbez"].Value.ToString());
                }
            }
        }


bei dem auskommentieretn teil(hab sogar schon versucht es auf den richtigen thread zu legen, trotzdem kommt diese exception).

Was mich jez wundert ist, dass ich z.b die Checkbox CB_SendProE problemlos setzen kann, obwohl dies auch ein steuerelement ist.

am rande: Die textboxen die ich setzen will sind zu diesem zeitpunkt unsichtbar, könnte es damit zu tun haben?

691 Beiträge seit 2007
vor 14 Jahren

Schau dir mal [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke) an, da sollten alle deine Fragen beantwortet werden.

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

916 Beiträge seit 2008
vor 14 Jahren

am rande: Die textboxen die ich setzen will sind zu diesem zeitpunkt unsichtbar, könnte es damit zu tun haben?

Nein du kannst generell keine Steuerelemente von einen anderen Thread, als den der sie erstellt, hat updaten. Benutze dazu immer ein Delegate. Schau dir auch mal den Thread an, sollte dir helfen.

Again what learned...

2.921 Beiträge seit 2005
vor 14 Jahren

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.