Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

PeterLE

Frischling

  • »PeterLE« ist der Autor dieses Themas

Beiträge: 3

Wohnort: Leibzsch

Beruf: Inschenör

  • Private Nachricht senden

1

31.01.2012, 14:20

[c#] in Visual C# 2010 Express ein usercontrol erstellen

Hallo,

ich ein ziemlicher Anfänger im Programmieren und habe bis auf etwas Spielerreien mit TurboPascal und VBA noch nichts in der Richtung gemacht. Nun möchte ich gerne c# lernen. Dazu habe ich mir etwas Literatur und Visual C# 2010 Express besorgt. Bis jetzt habe ich einige kleinere Spielereien mit Konsolenanwendungen und Winforms gemacht.
Jetzt möchte ich gern in meinen form auf den Hintergrundbild unsichtbare buttons anlegen. Das das nicht geht habe ich durch googlen schon festgestellt und auch, dass ich mir mit usercontrol ein eigenes passendes Steuerelement basteln soll. Nur kriege ich genau das nicht hin. In meinen Buch und den Tutorial, die ich im Netz gefunden habe wird gesagt man soll ein neues Projekt erstellen und da Windows-Steuerelementbibliothek auswählen. Ich kann aber nur zwischen
Windows Forms-Anwendung,
WPF-Anwendung,
Konsolenanwendung,
Klassenbibliothek,
WPF-Browseranwendung und
Leeres Projekt wählen.

Wer kann mir sagen, wie ich ein passendes Steuerelement basteln kann. Gut wäre es, wenn die Tipps idiotensicher wären, damit ich auch was damit anfangen kann.

Danke

Peter

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

2

31.01.2012, 14:24

Erstell als Projekt eine Klassenbibliothek und füg in dem Projekt dann ein Benutzersteuerelement hinzu.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

31.01.2012, 14:25

Wieso willst du unbedingt unsichtbare Buttons anlegen?
Lass mich raten: Du bastelst ein Tic-tac-toe oder 4-Gewinnt Spiel oder sowas?
Fang doch einfach die Klicks auf dein Hintergrundbild ab und berechne dir aus den Koordinaten welches Feld angeklickt wurde, anstatt unsichtbare Buttons zu platzieren ;)

PeterLE

Frischling

  • »PeterLE« ist der Autor dieses Themas

Beiträge: 3

Wohnort: Leibzsch

Beruf: Inschenör

  • Private Nachricht senden

4

31.01.2012, 14:39

@ dot
Das tic tac toe habe ich schon gebastelt. Das Fernziel ist ein Spiel im Stil alter Wirtschaftssimulationen. Die Koordinaten eines Klicks abzufragen ist da imo einfach viel zu umständlich. Im Moment bin ich am überlegen, wie ich es realisieren soll. Ich fände es besser, wenn ich mir ein Steuerelement bastle und das dann auf den jeweiligen Bildern plaziere.

@ Legend
danke, das werde ich heute Abend probieren

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

31.01.2012, 15:03

Koordinaten des Klicks abzufangen ist mit Garantie einfacher als ein neues Control zu schreiben.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

31.01.2012, 15:04

Jap. Und vor allem ist es, was man in einem richtigen Spiel machen würde ;)

Außerdem: Rat mal wie du die Klicks auf deine unsichtbaren Buttons realisieren würdest...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

31.01.2012, 15:20

Mit einem MouseDown-Event, genau wie die Koordinaten-Abfrage. Ach, ich bin ein oller Spoiler. :D
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

PeterLE

Frischling

  • »PeterLE« ist der Autor dieses Themas

Beiträge: 3

Wohnort: Leibzsch

Beruf: Inschenör

  • Private Nachricht senden

8

02.02.2012, 10:54

@ blueCobold
Du bist mit nichten ein Spoiler. Ich habe durchaus darüber nachgedacht die Koordinaten abzufragen. Dann aber bitte mit einen Klick und nicht mit einen MouseDown.
Ihr habt sicher recht, dass man bei eien richtigen sicher auch die Koordinaten abfragen würde. Das bringt für für das was ich machen möchte und bisher kann aber viele Nachteile. Ich müsste erst einmal die Koordinaten kennen, dann ändern sich die absoluten Koordinaten, wenn ich die Fenstergröße ändere und das Hinzufügen weitere unsichtbarer Buttons ist mit einigen Aufwand verbunden.

Ich habe jetzt direkt im Projekt ein neues Steuerelement erstellt. Dafür waren nur ein paar Zeilen nötig (siehe unten). Wenn ich jetzt einen weiteren unsichtbaren Button brauche, dann füge ich ihn in der Entwurfsansicht einfach über die ToolBox ein klicke doppelt darauf und schreibe dann, was ich damit machen möchte.

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
[DefaultEvent("Click")] 
    public partial class buttonInvisible : UserControl
    {
        public buttonInvisible()
        {
            InitializeComponent();
            this.SetStyle(ControlStyles.SupportsTransparentBackColor |
                        ControlStyles.StandardClick |
                        ControlStyles.ResizeRedraw, true);
            this.BackColor = Color.Transparent; 
        }
    }

Der einzige Nachteil, der mir bisher aufgefallen ist, ist dass die Buttons auch im Entwurf unsichtbar sind, solange ich sie nicht ausgewählt habe.
Falls einer noch einen Tipp hat, wie man dieses Manko beseitigt oder mir einen Nachteil nennen kann, den ich noch nicht sehe, dann nur raus damit.

Werbeanzeige