Autor Beitrag
MartinBush
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Do 12.06.08 10:15 
Hallo,

ich hab eine Methode die die Statusbar in Abhängigkeit des Ladezustands des Documentes anzeigen soll.

Anfängerfrage:
Wie mache ich denn der Methode klar das sich der Ladezustand ändert. Muss ich da was übergeben, registrieren?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
/*
Codebeispiel:
private void statusBar1_ParentChanged(object sender, EventArgs e)
        {
            if (webBrowser1.ReadyState == WebBrowserReadyState.Loading)
            {
                statusBar1.Text = "Loading";
            }
*/


Danke Martin

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 12.06.08 10:20 
Hallo und :welcome:!

Der WebBrowser hat entsprechende Events wie ProgressChanged, DocumentComplete, FileDownloaded, etc. Auf diese Events kannst Du reagieren und die StatusBar entsprechend befüllen.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MartinBush Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Do 12.06.08 10:27 
Hab das Hallo vergessen sory :-(

Und wie reagiere ich - rufe ich die gezeige Methode dann von dort aus auf? Noch einfacher gefragt - wie schaffe ich es diese Methode bei einer Satusänderung aufgerufen wird?

Glaub es klappt:

Bin damit net klargekommen: (object sender, EventArgs e)


MFG Martin
MartinBush Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Do 12.06.08 13:27 
Problem besteht immer noch und ist ein generelles Problem.

Egal welche Methode ich implementiere - wie wird einfach nicht aufgerufen - dachte das funktioniert automatisch. Was muss ich tun?

ausblenden C#-Quelltext
1:
private void treeView1_MouseUp(object sender, MouseEventArgs e)					


Mfg Martin

Moderiert von user profile iconChristian S.: Irrtümliches Zitat statt Edit entfernt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 12.06.08 14:14 
Hallo!

Hast Du die Methode denn dem entsprechenden Ereignis zugewiesen? Am Einfachsten geht das über die Eigenschaften-Box im Form Designer.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MartinBush Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Do 12.06.08 14:42 
Nee - mit welchem Element in den Properties mach ich denn das?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 12.06.08 14:56 
Erst einmal ein Hinweis vorweg: Du solltest Dir dringend Grundlagen erarbeiten und mit kleinen Sachen anfangen. Sehr gut dafür geeignet ist das Suche bei Google OPENBOOK VISUAL C#.

In der Properties-Box hast Du oben Symbole. Da ist eines, das wie ein Blitz aussieht. Wenn Du darauf klickst, bekommst Du in der Box die Events angezeigt, welche es für das markierte Control gibt.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MartinBush Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Do 12.06.08 15:23 
Hi,

ok - dort ist eigentlich alles leer und weiterhin habe ich da keine Möglichkeiten. Ich möchte ja die Methode nur aufrufen wenn etwas bestimmtes passiert ist. zB Rechtsklick.

Wie wird das denn generell bei C# gemacht? Methode aufrufen, Listener setzen ...?

Link schau ich mir mal an Danke

MFG Martin
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 12.06.08 15:44 
user profile iconMartinBush hat folgendes geschrieben:
ok - dort ist eigentlich alles leer und weiterhin habe ich da keine Möglichkeiten.

Doch hast Du. Du kannst für jedes Event entweder per Doppelklick eine Methode anlegen oder Du kannst in der rechten Spalte auch vorhandene Methoden mit passender Signatur auswählen.

user profile iconMartinBush hat folgendes geschrieben:
Ich möchte ja die Methode nur aufrufen wenn etwas bestimmtes passiert ist. zB Rechtsklick.

Schon klar, sonst würden wir nicht über Events reden.

user profile iconMartinBush hat folgendes geschrieben:
Wie wird das denn generell bei C# gemacht? Methode aufrufen, Listener setzen ...?

Über die Event-Einstellung in der Properties-Box (s.o.) oder über Code:
ausblenden C#-Quelltext
1:
textBox1.TextChanged += textBox1_TextChanged;					

mit einer Methode textBox1_TextChanged mit passender Signatur (findet man in der Doku).

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MartinBush Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Sa 14.06.08 14:40 
Ok hab delegates mal sein lassen und will mit Events anfangen. Jetzt ganz einfach, bei einem Mouseover soll ein Text in ein Label geschrieben werden. Die Methode wird nicht aufgerufen - das csharb Buch hilft mir nicht weiter :-(

In
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
 private void InitializeComponent()
{

..this.label1.TextChanged += new System.EventHandler(this.label1_MouseUp);
..

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
        public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_MouseUp(object sender, EventArgs e)
        {
            this.label1.Text = "mouseover";
        }

    }
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 14.06.08 14:47 
Du kannst Delegates nicht sein lassen, wenn Du Events machen willst. Das hängt untrennbar zusammen ;-)

Zu Deinem Problem:

Du willst auf MouseOver reagieren.
Du legst eine Methode label1_MouseUp an.
Und weist die dem Ereignis TextChanged zu.

Fällt Dir was auf? ;-)

(Wenn Du das Ereignis über den Designer anlegst, sparst Du Dir vieles, der legt direkt die richtige Mehtode mit richtigem Namen an.)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MartinBush Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Sa 14.06.08 15:11 
Zitat:
Du willst auf MouseOver reagieren.
Du legst eine Methode label1_MouseUp an.


ausblenden C#-Quelltext
1:
2:
3:
        // Summary:
        //     Occurs when the mouse pointer is over the control and a mouse button is released.
        public event MouseEventHandler MouseUp;


Zitat:
Und weist die dem Ereignis TextChanged zu.


Naja "VS" biete mir direkt keine andere Möglichkeit und so vermutete das ich damit das Attribut Text vom label1 ändere.Ist dem nicht so?

Im Anhang mal mein VS - also rein selektieren kann ich dort nichts. Ich dort wohl den Namen der Methode reinschreiben und er generiert mir die dann. Im Anhang mal mein Designer - ich habe bei den Events nur Data und Property Changed.

Mfg

Nachtrag:
Neues Projekt und eine Textbox erstellt die sich ändern soll. Bei den Events habe ich nun Keyevents zur Verfügung und damit hab dann ein Event generiert und bei Tastendruck macht er was. Klasse. Also darüber scheints zu klappen nur nicht wenn ich es selebr mache. Jetzt schau ich mir das noch mal genau an
Einloggen, um Attachments anzusehen!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 14.06.08 15:20 
Du weißt schon, dass Du da eine Anwendung für einen PocketPC erstellst? Das ist klar, dass es da kein MouseOver gibt, es gibt ja in dem Sinne keinen Mauszeiger, der irgendwo drüber sein kann.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 14.06.08 15:20 
Da hast du dich aber gründlich verrannt ;) . Was du gerade programmierst, ist keine Anwendung für Desktop-PCs, sondern für PDAs (Compact Framework)...
Der Projekttyp, den du wohl eigentlich suchst, heißt "Windows Forms-Anwendung".

Edit: Nun hast du anscheinend den richtigen Typ erwischt.
MartinBush Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Sa 14.06.08 15:24 
Verdammt das hab vergessen - jup es soll für WinCE sein. Sori

Bei Panels wiederum stehen mit Mousevents doch zur Verfügung -jetzt weiß ich wo ich starten kann - danke.