You are not logged in.

  • Login

1

Sunday, November 1st 2009, 1:23pm

C# spiel - mit mauszeiger durch blöcke

also, ich hoffe ich bin hier nicht falsch, den ich hab kein forum für C# endeckt...

also mein problem ist:
ich hab microsoft visual c# express 2008

ich hab ein fenster(form) und da hab ich zwei bilder, ein label(text), ein button.
es ist ein spiel, man muss mit dem mauszeiger durch die blöcke durfinden.(man darf nich block berühren)
wen man einen block berührt,wird das button grau (mann kan es nicht drücken),um es wieder drücken zu können muss man wieder den label(text=start) berühren.ziel ist das man button drückt!

C# Quellcode

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
43
44
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
 
 
namespace WindowsFormsApplication1
{
	public partial class Form1 : Form
	{
    	public Form1()
    	{
        	InitializeComponent();
 
    	}
 
    	private void Form1_Load(object sender, EventArgs e)
    	{
 
    	}
 
    	private void pictureBox2_mousehover(object sender, EventArgs e)
    	{
 
    	}
 
    	private void pictureBox1_mousehover(object sender, EventArgs e)
    	{
        	<--------------------------------------------------------------------------------------------------hier solll das button grau(undrückbar) werden
 
    	}
 
    	private void label1_mousehover(object sender, EventArgs e)
    	{
        	<----------------------------------------------------------------------------------------------------------hier soll das button normal werden
 
    	}
	}
}


ich glaub das muss irgendwie mit dem befehl "enabled = false" bzw. "enabled =true" gehen


vielen dank schonmal im voraus...
Michael

2

Sunday, November 1st 2009, 5:51pm

weiß das niemand, oder ist das unmöglich?

3

Monday, November 2nd 2009, 2:29pm

hallo,

ich muss gestehen ich hab nicht so ganz verstanden was du machen willst!
aber hier mal das zum enable bzw. disable:

um einen button zu enablen musst du die entsprechende property des buttons auf enable = true stezen. das ist recht einfach:

C# Quellcode

1
2
3
4
5
// enable:
button.Enabled = true;
 
// disable:
button.Enabled = false;


button ist der name den du für den button vergeben hast.

um auf dein problem einzugehen:
(ich hoffe ich habs richtig verstanden)
wenn du ne "block" berührst (siehe mousover event) dann setzt du einfach deinen button auf enabled = false.
defaultmäsig kannst du deinen button auch klick bar bzw. nicht klickbar machen indem du die property im entsprechendem editor fenster auf true oder false setzt!

hoffe ich konnte dir helfen.

thx, truespin

4

Sunday, November 8th 2009, 6:51pm

thx, das hat ich schon, blos hab false mit true verwechselt, trotzdem danke,
aber jetzt hab ich nen anderes problem,
ich hab auf youtube (tutorial) den begriff mousehover gesehen!
z.B.:

C# Quellcode

1
button1_click

das geht ja, aber da müsste doch auch das gehen oder?

C# Quellcode

1
button1_mousehover

!Das geht aber net! da sagt er fehler in "Form1.designer.cs" !

da steht dan das:

C# Quellcode

1
this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click);

wen ich hinschreib:

C# Quellcode

1
this.pictureBox2.mousehover += new System.EventHandler(this.pictureBox2_mousehover);

gehts immer noch nicht!!!

5

Sunday, November 8th 2009, 7:10pm

Sorry, problem gelöst, ich dachte nicht dran das man "mousehover", so schreiben muss: "MouseHover"

6

Tuesday, November 10th 2009, 8:12am

hallo,

es ist ganz sinnvoll die events die von der form geschmissen werden auch im formdesigner auszuwählen.
das geht über das event menü. dazu wählst du ein steuerelement aus (z.b. nen button) undklickst über dem eigenschaftsfenster des steuerelements auf den blitz. in der liste kannst du dann auswählen was für ein event du gerne hättest. der quellcode wird dir dann auch angelegt.

thx, truespin


edit: c# ist case sensitive... heißt groß und kleinschreibung macht sehr wohl einen unterschied wie du gemerkt hast ;)

7

Wednesday, November 18th 2009, 11:46am

ja, ich bin C# anfänger, i hab C# nur genommen weil das gleiche spiel in basic nicht ging, weil wenn ich auf einen block gegangen bin,
der button erst 5 sekunden später undrückbar gemacht worden ist.

Das hab ich jetzt in C# nach gebaut, und immer noch:
ich fahre auf block, 3 sekunden später, erst button undrückbar!

was mach ich falsch das die programmier sprachen, so lahm sind?????

8

Thursday, November 19th 2009, 8:23am

guten morgen,

zeig mir deinen code, dann kann dir geholfen werden

thx, truespin

9

Thursday, November 19th 2009, 4:32pm

C# Quellcode

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
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
 
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox2_MouseHover(object sender, EventArgs e)
        {
            button1.Enabled = false;
        }
 
        private void pictureBox1_MouseHover(object sender, EventArgs e)
        {
            button1.Enabled = false;
 
        }
 
        private void label1_MouseHover(object sender, EventArgs e)
        {
            button1.Enabled = true;
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
        }
    }
}

10

Friday, November 20th 2009, 8:45am

hallo,

du verwendest das MouseHover event. sie dir doch mal an wann dieses event ausgelöst wird:
"Tritt auf, wenn die Maus innerhalb eines Steuerelements für eine bestimmten Zeitraum nicht bewegt wird."

überleg dir nochmal was du tun willst! ich schätze du willst sowas: MoseMove
"Tritt auf, wenn der Mauszeiger über die Komponente bewegt wird."

all diese infos findest du im formdesigner. öffne die entwurfsansicht und klicke auf den kleinen blitz um die events festzulegen!

thx, truespin

11

Sunday, November 22nd 2009, 4:30pm

?
könntest du mir als beispiel mal eine Zeile damit Programmieren?

12

Monday, November 23rd 2009, 4:04pm

hallo

ich weiß ja nicht ob du es jetzt geschafft hast oder nicht, weil das thema auf "erledigt" gesetzt wurde... aber hier die zeile code

C# Quellcode

1
2
3
4
private void button2_MouseMove(object sender, MouseEventArgs e)
        {
            button1.Enabled = false;
        }


du musst einfach für das steuerelement das du nicht berühren sollst ein mousemove event vergeben. wenn du drüber fährst musst du den butten disablen (enabled = false).


thx, truespin

13

Tuesday, November 24th 2009, 5:52pm

Thx, Thx und nochmal Thx...
Danke....
Aber, ich hab das Thema als Erledigt, nur ausversehen makiert...

14

Wednesday, November 25th 2009, 7:25am

guten morgen,

kein problem!
funzt es jetzt wie gewollt?

thx, truespin

15

Saturday, December 5th 2009, 9:59am

ging net, deswegen hab ich da was geändert:

C# Quellcode

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
namespace WindowsFormsApplication1
{
	partial class Form1
	{
    	/// <summary>
    	/// Erforderliche Designervariable.
    	/// </summary>
    	private System.ComponentModel.IContainer components = null;
 
    	/// <summary>
    	/// Verwendete Ressourcen bereinigen.
    	/// </summary>
    	/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
    	protected override void Dispose(bool disposing)
    	{
        	if (disposing && (components != null))
        	{
            	components.Dispose();
        	}
        	base.Dispose(disposing);
    	}
 
    	#region Vom Windows Form-Designer generierter Code
 
    	/// <summary>
    	/// Erforderliche Methode für die Designerunterstützung.
    	/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
    	/// </summary>
    	private void InitializeComponent()
    	{
        	System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
        	this.pictureBox1 = new System.Windows.Forms.PictureBox();
        	this.pictureBox2 = new System.Windows.Forms.PictureBox();
        	this.label1 = new System.Windows.Forms.Label();
        	this.button1 = new System.Windows.Forms.Button();
        	((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
        	((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
        	this.SuspendLayout();
        	// 
        	// pictureBox1
        	// 
        	this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage")));
        	this.pictureBox1.Location = new System.Drawing.Point(0, 42);
        	this.pictureBox1.Name = "pictureBox1";
        	this.pictureBox1.Size = new System.Drawing.Size(250, 78);
        	this.pictureBox1.TabIndex = 0;
        	this.pictureBox1.TabStop = false;
        	this.pictureBox1.MouseHover += new System.EventHandler(this.pictureBox1_MouseHover);
        	// 
        	// pictureBox2
        	// 
        	this.pictureBox2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox2.BackgroundImage")));
        	this.pictureBox2.Location = new System.Drawing.Point(42, 142);
        	this.pictureBox2.Name = "pictureBox2";
        	this.pictureBox2.Size = new System.Drawing.Size(250, 78);
        	this.pictureBox2.TabIndex = 1;
        	this.pictureBox2.TabStop = false;
        	this.pictureBox2.MouseMove += new System.EventHandler(this.pictureBox2_MouseMove);
        	// 
        	// label1
        	// 
        	this.label1.AutoSize = true;
        	this.label1.Location = new System.Drawing.Point(8, 10);
        	this.label1.Name = "label1";
        	this.label1.Size = new System.Drawing.Size(29, 13);
        	this.label1.TabIndex = 2;
        	this.label1.Text = "Start";
        	this.label1.MouseHover += new System.EventHandler(this.label1_MouseHover);
        	// 
        	// button1
        	// 
        	this.button1.Location = new System.Drawing.Point(129, 233);
        	this.button1.Name = "button1";
        	this.button1.Size = new System.Drawing.Size(142, 26);
        	this.button1.TabIndex = 3;
        	this.button1.Text = "Ziel";
        	this.button1.UseVisualStyleBackColor = true;
        	this.button1.Click += new System.EventHandler(this.button1_Click);
        	// 
        	// Form1
        	// 
        	this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        	this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        	this.ClientSize = new System.Drawing.Size(292, 266);
        	this.Controls.Add(this.button1);
        	this.Controls.Add(this.label1);
        	this.Controls.Add(this.pictureBox2);
        	this.Controls.Add(this.pictureBox1);
        	this.Name = "Form1";
        	this.Text = "Form1";
        	this.Load += new System.EventHandler(this.Form1_Load);
        	((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
        	((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
        	this.ResumeLayout(false);
        	this.PerformLayout();
 
    	}
 
    	#endregion
 
    	private System.Windows.Forms.PictureBox pictureBox1;
    	private System.Windows.Forms.PictureBox pictureBox2;
    	private System.Windows.Forms.Label label1;
    	private System.Windows.Forms.Button button1;
 
	}
}

und jetzt geht gar nichts mehr!!!!!!!!!!!!!!!!!!!!!!!!

Similar threads

Social bookmarks