Forum: PC-Programmierung Problem bei kleinem C# Programm


von Roman94 (Gast)


Lesenswert?

Hallo..

Ich bräuchte Hilfe bei meinem Programm, das ich in C# programmiere.
Ich habe vor, dass ich durch einen Button eine neue Windows-Form öffnen 
kann. Bisher schaffte ich es, dass ich durch einen Button eine 
Windows-Form öffnen konnte, jedoch leider nur als externes Fenster. 
Jedoch möchte ich über einen Button erzielen, dass praktisch die erste 
Seite "gelöscht" wird (Buttons, textBox, etc.) und ich es neu 
modellieren kann.

Zum Beispiel:
Bei der Installation kommt man über den "weiter" Button auf eine neue 
Seite, die sich jedoch nicht extern öffnet.

Ich bräuchte jetzt einen Code für diese Aktion.

Und meine zweite Frage ist, wie man abfragen kann, ob ein Button 
gedrückt worden ist.

Jetzt schon vielen Dank

von andy (Gast)


Lesenswert?

Hallo,erklär mal genauer was du mit der neuen Form machen willst.
Zu prüfen,ob ein button gedrückt wurde,brauchst du nicht.
Du schreibst in den ereignisbehandler des Button was zu tun ist,wenn der 
Button gedrückt wird und gut ist.
gruss
andy

von kiar (Gast)


Lesenswert?

moin,

das sind grundlagen, die du dir erstmal aneignen solltest.es bringt dir 
nichts fertigen code zu haben und diesen nicht zu verstehen.

hier einige links zu den grundlagen

http://www.guidetocsharp.de/

http://openbook.galileocomputing.de/visual_csharp/

sorry raik

von andy (Gast)


Lesenswert?

Hallo,wollte grade noch daselbe wie mein Vorredner schreiben.
Eigne dir erst mal dir Grundlagen an und arbeite dich langsam zu
dem vor,was du vorhast.Fertigen Code auszuführen kann jeder,
ihn zu verstehen musst du können.

Ich habe mit dem Buch "Jetzt lerne ich Visual C# 2008 " angefangen.
Ist gut verständlich geschrieben und man kommt vorwärts.

gruss
andy

von Roman94 (Gast)


Lesenswert?

andy schrieb:
> Hallo,erklär mal genauer was du mit der neuen Form machen willst.

über einen Button in der Form1 will ich praktisch diese Form1 
überschreiben und neu modellieren.

Das mit dem Button funktioniert danke

von technikus (Gast)


Lesenswert?

Hallo,

versuch doch erst einmal in kleineren Schritten zu arbeiten.

1. Im Projektmappenexplorer rechtsklick auf "Projektname"
2. Hinzufügen Windows Form
3. Namen vergeben
4. In Button Click Ereignis eine Instanz vom Typ Form 2 erzeugen

Form2 myForm2 = new Form2();

5. Jetzt per ShowDialog() oder Show() das Formular öffnen

myForm2.ShowDialog();

Mit der Methode Hide() könntest du vorher das erste Formular verstecken.


usw.

Der Einstieg in c# kann recht schwer fallen. Deswegen ist es m.M.n. 
wichtig kleinschrittig zu arbeiten und vor allem ein gut verständliches 
Einsteigerbuch durchzuarbeiten bevor man anfängt zu programmieren.

Gruß
technikus

von Andreas K. (scavanger)


Lesenswert?

Hallo,

ich rate dir dein Bedienkonzept zu überdenken.
In Form sollten keine Elemente in irgendeiner Form gelöscht oder 
"magisch" verändert werden.
Warum willst du überhaupt die GUI-Elemente verändern?
Entweder du zeigst eine neue Form (modal) an, oder du arbeitest mit 
Tabs.

von Arc N. (arc)


Lesenswert?

Was hier gesucht wird ist eine _ Form mit _einem TabControl und 
mehreren Seiten, dessen Aussehen etwas verändert wird...
1
    // z.B. im Konstruktor nach InitializeComponent();
2
    
3
    tabControl1.SuspendLayout();
4
 
5
    // Appearance umstellen, damit keine Ränder übrigbleiben
6
    tabControl1.Appearance = TabAppearance.Buttons;
7
    tabControl1.SizeMode = TabSizeMode.Fixed;
8
    // Größe der Tabs inkl. Text/Icons auf Minimum
9
    tabControl1.ItemSize = new Size(0, 1);
10
11
    tabControl1.ResumeLayout(true);
12
13
    // Umschalten der Seiten    
14
    tabControl1.SelectedTab = tabPage1;

von andy (Gast)


Lesenswert?

Hallo,ist ja nett wenn Ihr solchen Code postet.
Ihr glaubt doch wohl nicht,das Ihr dem Fragesteller damit helft.
Er wird nun zuhause sitzen,sich den Code anschauen,ihn nicht 
verstehen,ihn irgendwo in sein Programm reinkopieren und sich 
wundern,das er von Fehlermeldungen erschlagen wird.Aber die kann er ja 
dann wieder hier posten
usw.Helfen ist ja gut und schön.Wenn man aber merkt,das jemand,der ganz 
am anfang des erlernens einer Programmiersprache steht sofort etwas 
schreiben will,was noch viel zu schwer für ihn ist,sollte man ihn zum 
lernen animieren und nicht mit Codeschnipseln eindecken.
Nur so meine Meinung.

gruss
andy

von Sam (Gast)


Lesenswert?

Ich hab das auch mal probiert - vor langer Zeit.
Die Methode ist zwar nicht so elegant, aber sie funktioniert:
Du nimmst ein Control Array  und speicherst dort die einzelnen Seiten 
rein:


aktPage = 0;

Control[][] pages = new Control[] {
                     new Control[] {Button1, TextBox1, Label1,...}, 
//Seite 1
                     new Control[] {Button2, TextBox2, 
Label2,...}};//Setie 2

void ShowPage(int page)
{
     SetPageEnable(aktPage,false);
     SetPageEnable(page,true);
     aktPage = page;
}

void SetPageEnable(int page, bool status)
{
     for(int i = 0; i!=pages[page].Length;i++)
          pages[page][i].Enable = status;
}

von Roman94 (Gast)


Lesenswert?

andy schrieb:
> Er wird nun zuhause sitzen,sich den Code anschauen,ihn nicht
>
> verstehen,ihn irgendwo in sein Programm reinkopieren und sich
>
> wundern,das er von Fehlermeldungen erschlagen wird.

Nein das stimmt nicht so ganz..Ich bin nicht einer von denen der nur 
"strg+c & strg+v" Leuten..Ich schau mir den Code an und versuche ihn 
dann zu verstehen.
"C" hab ich mir auch teilweise so erarbeitet, weil es unser Lehrer nicht 
gut genug erklärt hat. Und nun kann ich es mittlerweile ;)
Doch nur Konsolenanwendungen werden nach der Zeit fad..Deswegen hab ich 
mich entschieden C# zu lernen..und dass schaff ich genau so :)

von andy (Gast)


Lesenswert?

Hallo,das ist doch mal eine antwort,super.
Endlich mal einer der biss zeigt.
Häng dich rein und du wirst es lernen.Nur mein Tip.Fang mit
dem Grundwissen an.C und C# sind zwei paar Schuhe.
Fang klein an und erweitere deine Forms.
Dann wirst du feststellen,das das was du vorhast gar nicht so schwer 
ist.

Viel Spaß dabei

andy

von Roman94 (Gast)


Lesenswert?

jop ich muss mir erst mal Grundwissen aneignen, deshalb lese ich mir mal 
alles genau auf der Seite www.java2s.com an..
Da ist auch zwar nur immer der Quellcode..Doch es klappt, wenn ich ein 
bisschen nachdenke ..

MfG

von Eugler (Gast)


Lesenswert?

Sofern ich das verstanden habe willst du sowas wie einen wizard, also 
Seite für Seite durchgehen. Schau dir mal die Usercontrol Klasse an, dan 
kannst du dir deine spezifische Oberfläche für jede Seite selbst 
basteln. Einfach dann die verschiedenen Usercontrols nach belieben 
einblenden (DockStyle = Fill), und eventuell Variablen in der Main 
Klasse (also bei dir Form) zwischenspeichern. Die Form hat eine Liste 
von beinhaltenden Controls, da würde also immer nur deine aktuelle 
Control drinne stehen (Mal von den Vor und Zurück Buttons abgesehen).

von Roman94 (Gast)


Lesenswert?

stimmt...
Einen Wizard wollte ich programmieren..
jetzt weiß ich wo ich mich umschauen muss

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.