Autor Beitrag
Fate
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 06.12.08 15:01 
Hi, ich arbeite mit hilfe eines Buches und habe eine Anwendung nachempfunden

bisher klappte alles nur das einlesen der Mousekoordinaten und in der Titelleiste der Andwendung auszugeben klappte nicht. Auch in einem textfeld erscheinte nichts. Kann mir jemand helfen wo ich den fehler mache

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
namespace WindowsFormsApplication1
{
    public partial class myform : Form
    {
        public myform()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void btnKopieren_Click(object sender, EventArgs e)
        {
            txtKopie.Text = txtOriginal.Text;
        }

        private void btnBeenden_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        private void myform_MouseMove(object sender, MouseEventArgs e)
        {
            string koordinate = "X=" + e.X + " / Y=" + e.Y;
            if (sender == this)
            {
                this.Text = "Form / " + koordinate;
                txtKopie.Text = koordinate;
            }
            else if (sender == btnKopieren)
                this.Text = "Koopieren / " + koordinate;
            else
                this.Text = "Beenden / " + koordinate;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }


Liebe Grüße

Fate

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: Sa 06.12.08 15:14 
Hallo und :welcome:!

Ist denn die myform_MouseMove Methode auch dem entsprechenden Ereignis der Form zugewiesen?

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 06.12.08 15:20 
Hast du denn die Ereignisse richtig zugewiesen? Oder hast du den Quelltext einfach nur abgetippt, inklusive der Zeile
ausblenden C#-Quelltext
1:
private void btnKopieren_Click(object sender, EventArgs e)					
zum Beispiel?

Deinem Quelltext nach zu urteilen benutzt du MS Visual Studio, also Visual C#. Entweder klickst du doppelt auf den Button um das Ereignis zuzuweisen und den Quelltext dafür erstellen zu lassen oder du schaust rechts unten unter Eigenschaften. Dort siehst du einen Button mit einem Blitz als Symbol und dem Hinweis Ereignisse. Wenn du darauf klickst und der Button btnKopieren ausgewählt ist im Formular, dann sollte dort als erste Zeile stehen Click und rechts daneben btnKopieren_Click.
Ist das so?
Fate Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 06.12.08 15:24 
Hallo vielen Dank erstmal.

Nun eigentlich möchte ich nur, sobald meine Mouse über die Form geführt wird, dieses im Titel meiner Windowsanwendung gezeigt bekommen...

Ich habe in dem Buch bisher alles der reihe nach durchgearbeitet. Es sind relativ simple anwendungen auch das verknüpfen der ereignisse mit den Buttons. Nur jetzt bezieht sich dieses Event ja nciht auf ein Click ereigniss wie beim button sondern auf die Form ansich...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 06.12.08 15:34 
user profile iconFate hat folgendes geschrieben Zum zitierten Posting springen:
Nur jetzt bezieht sich dieses Event ja nciht auf ein Click ereigniss wie beim button sondern auf die Form ansich...
Klick auf eine freie Stelle des Formulars, so das keine Komponente mehr markiert ist, oder wähle rechts direkt unterhalb von Eigenschaften "myform System.Windows.Forms.Form" aus.
Danach klickst du dann auf den Button mit dem Blitz und stellst unter MouseMove deine Methode myform_MouseMove ein. Diese sollte dort zur Auswahl stehen, du kannst sie auch manuell eintragen.

Mit einem Doppelklick rechts neben MouseMove kannst du den Eventquelltext erstellen lassen und der Quelltext öffnet sich mit dem Textcursor an der richtigen Stelle. Da du myform_MouseMove aber schon deklariert hast, musst du das nur noch eintragen, sonst wird bei einem Doppelklick eine neue Methode myform_MouseMove_1 erstellt.
Fate Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 06.12.08 15:35 
ah super vielen dank das wars mit der zuweisung bei dem Blitz. danke
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 06.12.08 15:59 
Und dieser Fehler ist noch niemandem aufgefallen:

Das geht natürlich überhaupt nicht, weil e.X und e.Y jeweils int sind:
ausblenden C#-Quelltext
1:
string koordinate = "X=" + e.X + " / Y=" + e.Y;					

So kann es gehen:
ausblenden C#-Quelltext
1:
string koordinate = "X=" + e.X.ToString() + " / Y=" + e.Y.ToString();					

Aber dafür gibt es auch eine vorgefertigte Methode:
ausblenden C#-Quelltext
1:
string koordinate = String.Format("X={0} / Y={1}", e.X, e.Y);					


Jürgen
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 06.12.08 16:14 
user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
Das geht natürlich überhaupt nicht, weil e.X und e.Y jeweils int sind:
Ohne es gutzuheißen: Doch, das geht.

_________________
>λ=
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 06.12.08 16:25 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Doch, das geht.

Nanu, unter welchen Umständen wird denn automatisch konvertiert? Sorgt der Plus-Operatur des Strings dafür?

Ich habe es noch nie so gemacht, weil es für mich selbstverständlich war. Dann formuliere ich es mal so:

Und dieser Fehler ist noch niemandem aufgefallen:
Das geht natürlich überhaupt nicht, weil e.X und e.Y jeweils int sind:

Im Interesse der Typsicherheit sollte es nicht so gemacht werden, weil e.X und e.Y jeweils int sind:

Jürgen
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 06.12.08 16:55 
user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Doch, das geht.
Sorgt der Plus-Operatur des Strings dafür?
Würde ich auch sagen. In der Spezifikation habe ich zwar nichts gefunden, aber die Signaturen sähen wohl so aus:
ausblenden C#-Quelltext
1:
2:
string operator +(stringobject)
string operator +(objectstring)

_________________
>λ=
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 06.12.08 17:18 
Zitat:
Nanu, unter welchen Umständen wird denn automatisch konvertiert? Sorgt der Plus-Operatur des Strings dafür?
Scheint eher Compiler Magie zu sein.
Wenn man sich den generierten IL anguckt scheint eine string Verkettung mit + in einen Aufruf von string.Concat umgewandelt zu werden. Also aus
ausblenden C#-Quelltext
1:
string koordinate = "X=" + e.X + " / Y=" + e.Y;					

wird
ausblenden C#-Quelltext
1:
string koordinate = string.Concat(new object[] {"X=",e.X," / Y=",e.Y});					
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 06.12.08 17:25 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Wenn man sich den generierten IL anguckt scheint eine string Verkettung mit + in einen Aufruf von string.Concat umgewandelt zu werden.
Das ist ein Implementierungsdetail und hat auf die Operator-Auflösung keine Auswirkung. Aber du hast natürlich Recht, dass es keine System.String.op_Addition-Methode gibt, sondern sich der Compiler wie bei den primitiven Typen die Operatoren einfach "dazudenkt". Die mutmaßlichen Signaturen habe ich oben gepostet.

_________________
>λ=