So,
nach einiger Zeit, stelle ich jetzt mal die Version 2.0 online.
Eine komplettüberarbeitung, die soweit relativ Bugfrei sein müsste.
Ich wünsche euch sehr viel Spaß beim rumspielen.
MfG
Till-H
P.S. Falls ich noch Käfer finden solltet, sagt mir hier im Forum, per PM oder ICQ bescheid
Problem soeben gelöst..ein einfaches
this.Update;
hat war des Rätsels Lösung
ja,ok..ich danke dir und wünsche eine gute nacht 🙂
werde mich morgen nochmal ausführlich damit beschäftigen!
danke nochmals!
Till-H
private void pictureBox1_Paint(object sender, EventArgs e)
{
foreach (MyGraphicObject go in _listgo)
{
go.Draw(graph);
}
}
ist mein neuer Eventhandler..
this.pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(pictureBox1_Paint);
tut trotzdem nicht..beim späteren vergrößern der form tuts aber wieder
brauchste noch mehr code um einblick zu bekommen!?
Original von herbivore
im OnPaint der PictureBox und nicht des Forms.
sorry, aber wie genau soll ich das machen..wenn ich in Form.cs ein OnPaint schreibe bezieht sich das doch immer auf die Form oder nicht?!
graph = Graphics.FromHwnd(pictureBox1.Handle);
meinst du das?
oder was genau meinst du damit..
also mit diesem graph zeichne ich..den übergebe ich auch
ich zeichne in einer picturebox..
Original von herbivore
dann guck dir mal das ClipRectangle an
weiß nicht genau, was du meinst..
Original von herbivore
Wird OnPaint von Anfang bis Ende durchlaufen?
ja 🙂
Till-H
OnPaint wird aufgerufen..kommt trotzdem nix..
Hallo,
ich habe ein Problem..
ich habe schön alles nach dem Turotial von herbivore gemacht..in OnPaint mit Liste etc...
Jetzt überlagere ich die Anwendung mit nem Textfenster..
Wenn ich diese Überlagerung rückgängig mache..d.h. Die form ist wieder im vordergrund, so sehe ich eine leere form.
Resize ich diese jetzt aber, so sind plötzlich alle meine gefüllten Rechtecke wieder zu sehen!
Sehr mysteriös..hat jemand ne idee?
MfG
Till-H
Hallo,
danke für eure Zahlreichen antworten..
@thejudge: ich werd mir das mal genauer ansehen..ich danke dir für die hilfe..klingt nach genau dem, wonach ich suche!!
MfG
Till-H
Ja,ok..
Nur wie würde ich es denn machen, wenn ich es nicht mit Textboxen mache..wäre mal gut zu wissen, falls man es in der Zukunft nochmal braucht 😉
mhm..ok..danke..aber irgendwie hackt es grade bei mir..
ich kann damit jetz ein paar kästchen zeichnen und so..nur wie mach ich das, dass ich da reinschreib und dieses reinschreiben noch schön auswerte!?
MfG
Till-H
danke..
hat vielleicht noch jemand ein deutsches Tutorial da, um zu lernen, wie man Forms zeichnet?
Wäre nett..danke
Hi,
ich hab jetzt den Code für ein Sudoku-Programm soweit fertig.. will das ganze jetzt in ein schönes Interface einbinden.
Wie mache ich am besten ein Interface dafür..also eine Sudoku-Eingabe und Ausgabe-Maske..
81 Textboxen zu erstellen ist ja irgendwie dumm...
Danke im vorraus
Till-H
bei mir hats so geklappt...is zwar vllt nicht so sauber 😉 aber es geht..
ich weiß nicht wirklich ob dir das hilft und ob das genau dein problem ist..
ich würde es sonst vllt so versuchen:
//Form 2
private void cmd_close_Click(object sender, EventArgs e)
{
//Funktionen ausführen
Hide();
}
//Form 1, die Form 2 aufruft
private void cmd_action_Click(object sender, EventArgs e)
{
//Funktionen
Form2 Form2 = new Form2();
Form2.ShowDialog();
//Funktionen
}
Hoffe ich konnte helfen
MfG
Till-H
Edit: Fehler im Code verbessert..
Programm gefällt mir sehr..
Muss nur an einer Stelle meckern..
Ich nutze eine Doppelte Taskbar..D.h. Doppelt so hoch..dadurch werden Teile deines Progs verdeckt.. Wenn man es so hinbekommen könnte, dass dies nicht der Fall ist 😉!?
Mit freundichem Gruß
Till-H
Hi,
ihr beiden..
habe es vergessen ins Programm zu schreiben 😉
Drückt mal STRG, während ihr die Regler bewegt!
Sollte das Problem vllt lösen 😉
Unter Vista hab ich jedoch keine Ahnung..falls "STRG" das Problem nicht löst, stehe ich auf dem Schlauch 😉
Danke und MfG
Till-H
Hallo,
ich habe zwei Trackbars eingebaut und will diese jetzt unhabhängig voneinander steuern über Key eingaben..
Das Problem ist, Das die "Up,Down,Left,Right" Eingaben von der Trackbar mit dem niedrigsten Tabstop abgefangen werden.
Ich will jetzt aber mit Up und Down die eine und mit Left und Right die andere steuern. Was empfehlt ihr mir?
(Bisher sieht der Code so aus)
public void Form1_KeyPress(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
if (trackBar1.Value != trackBar1.Maximum)
{
trackBar1.Value++;
trackBar1_Scroll(sender, e);
}
}
if (e.KeyCode == Keys.Up)
{
if (trackBar1.Value != trackBar1.Minimum)
{
trackBar1.Value--;
trackBar1_Scroll(sender, e);
}
}
if (e.KeyCode == Keys.Right)
{
if (trackBar2.Value != trackBar2.Maximum)
{
trackBar2.Value++;
trackBar2_Scroll(sender, e);
}
}
if (e.KeyCode == Keys.Left)
{
if (trackBar1.Value != trackBar1.Minimum)
{
trackBar2.Value--;
trackBar2_Scroll(sender, e);
}
}
}
danke im Vorraus für die Hilfe
Till-H
ok..danke dir für das kommentar..soeben das studio wieder gestartet..version 2.0 wird kommen 😉
Hi herbivore,
jaa..genau!!
Da ist der Spielzeugkenner!!!
Ich danke dir!
Hallo,
ich habe mal ein wenig mit GDI+ rumgespielt..und das hier entwickelt..
das war früher mal ein Kinderspielzeug..kann jetzt leider nicht mehr den namen dafür finden..
Viel Spaß damit
Till-H
EDIT: Habe vergessen in das Programm reinzuschreiben: Wenn man einen Regler für "Links-Rechts" oder "Oben-Unten" bewegt, muss man "Strg" drücken, damit das Programm malt
[EDIT von herbivore]Version 2.0 weiter unten: Malen[Spielzeug in C#] Version 2.0[/EDIT]
Hallo herbivore,
ja..hab ich auch schon gesehen.. aber wollte es einfach mal so ohne diese Sätze programmieren..
trotzdem danke 🙂
Hallo,
ich habe ein Programm geschrieben, dass Befreundete Zahlen errechnet..
Befreundete Zahlen:
Die Echte Teilersumme der Zahl A ist die Zahl B und die Echte Teilersumme der Zahl B ist die Zahl A.
Guckt es euch einfach an..😉
using System;
namespace Befreundete_Zahlen1
{
/// <summary>
/// Klasse gibt nach Übergabe eines Integer an "Teiler.Summe" die Summe
/// der echten Teiler aus.
/// </summary>
public class Teiler
{
public int Summe(int zahl){
int intSumme = 0;
int intmax = 0;
//Zahl wird bis zur Hälfte durchsucht
for(int i = 1;i<(zahl/2);i++)
{
if (zahl % i == 0)
{
if (zahl/i == intmax)
{
break;
//Abbruchkriterium, falls die Zahlen sich wiederholen
}//of if
intmax = i;
intSumme = intSumme + i;
intSumme = intSumme + zahl/i;
}//of if
}//of for
intSumme = intSumme - zahl;
//Um Summe der Echten Teiler zu erhalten wird die Zahl von
//der Teilersumme abgezogen
return intSumme;
}//of Summe()
}
}
Klasse, die die Teilersumme berechnet.
using System;
namespace Befreundete_Zahlen1
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
[STAThread]
static void Main(string[] args)
{
int intAnzahl = 110000;
int[] TeilerArray = new int[intAnzahl+1];
Teiler Teiler = new Teiler();
// ENDE DER DEKLARATION
for(int i = 1;i<=intAnzahl;i++)
{
TeilerArray[i]=Teiler.Summe(i);
//TeilerArray wird mit Teilersummen gefüllt
//ArrayPos --> Teilersumme
}//of for
for(int i = 1;i<=intAnzahl;i++)
{
if(TeilerArray[i] < intAnzahl & TeilerArray[i] > 0)
{
if(i == TeilerArray[TeilerArray[i]] & TeilerArray[i] != i)
{
Console.WriteLine("Befreundete Zahlen {0} und {1}",i,TeilerArray[i]);
TeilerArray[i]=0;
//Befreundete Zahlen werden gesucht. Eine der beiden Zahlen wird
//auf 0 gesetzt um Doppelfunde zu vermeiden
}//of if(innen)
}//of if(außen)
}//of for
Console.WriteLine("Fertig!");
Console.ReadLine();
}//of Main
}
}
Hauptmethode zum Suchen der Zahlen.
Die .exe im Anhang benötigt einige Zeit(ca 1Minute) um ein Ergebnis zu finden