Hmm, is ne ziemlich verschachtelte Struktur, also aktuell wird mit new angelegt, anschließend in das Grid eingehangen (bzw in eine Liste, die zum Einfügen der einzelnen Elemente in das Grid dient) und dann soll aktuell eben mit Werten befüllt werden, um diese in der Paint-Methode der jeweiligen Zelle, diese zu zeichnen.
Hat soweit eigentlich alles gepasst, weiß auch nicht genau, wo der Fehler lag, habs mir nur noch mal genauer angesehen, aber geht jetzt. Ich denke, das Problem lag darin, dass ich es länger nicht mehr kompiliert hatte (also vom System her, habe ich die Komponente in einer dll liegen und diese war im benutzenden Form nicht aktuell). Jetzt geht es, nachdem ich die dll neu referenziert habe.
Aber trotzdem danke so weit
wieso sollte das lange dauern?
Also hier zeichne ich auch beim start 20000 vierecke und das dauert nicht mal 1 sec.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
private Bitmap bitmap; //Bitmap wo alles drauf gemalt wird
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
bitmap = new Bitmap(this.Size.Width, this.Size.Height); // bitmap ist so groß wie das Fenster
Graphics graph = Graphics.FromImage(bitmap); //das Graphic object von der Bitmap bekommen
Brush brush = new SolidBrush(Color.DarkBlue);
Random rand = new Random(); //Random für Zufalls koordinaten
for (int a = 0; a <= 20000; a++)
{
int x = rand.Next(1, this.Size.Width); //Zufalls koordinaten
int y = rand.Next(1, this.Size.Height); //Zufalls koordinaten
Rectangle rectangle = new Rectangle(new Point(x, y), new Size(2,2));
graph.DrawRectangle(new Pen(brush), rectangle);// male 20000 x ein Dreieck auf die Bitmap
}
pictureBox1.Refresh(); //Ruf Paint auf
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(bitmap, new Point(0,0)); //male die große bitmap auf die picture box
}
}
}
genau - dies war auch teil meiner frage.
gibt es da vllt. schon vorgefertgte funktionen?
Kann ich aus dem DataTable-Object ein "CreateTable"-Statement erstellen?
danke schonmal!
Hallo zusammen!
Ich habe ein C-Dll und habe die Dll jetzt in eine .Net Dll Assembly eingebunden. Jetzt möchte ich zukünftig von .Net Programmen und von Excel auf diese .Net Assembly zugreifen. Das Problem dabei ist irgendwie der Zugriff von Excel aus auf die .Net Assembly wenn in der Parameterliste einer Funktion ein Array vorkommt. Excel sagt dann immer "Parameterliste Falsch". Ich glaub ich geh da irgnedwie falsch an die Sache ran.
Hat jemand Erfahrung mit diesem Thema? Wäre nett wenn mir jemand helfen könnte.
mfg Tom
Also ich hab da nochn problem mit der lösung:
Diese ship knoten sind ziemlich weit hinten verschachtelt, und ein zugriff ist nur über xpath möglich aufgrund der struktur.
Wie kann ich diese Lösung trotzdem verwenden?
Meine derzeitige schleife sieht jetzt so aus, funktioniert so aber nicht:
foreach (XmlNode ship in thewurzel.ChildNodes)
{
if (ship["shipType"] != null)
{
thetyp = ship["shipType"].InnerText;
Console.WriteLine("SchiffTyp: " + thetyp);
str += "Schiff: " + thetyp + Environment.NewLine;
}
}
Ich hab halt nicht den richtigen knoten selectiert, wie kann ich das (am besten xpath) machen?
Danke nochmal.
Versuch's mal so:
protected Icon[] aIcon = new Icon[4];
...
// einlesen
for (int i = 0; i < 4; i++)
{
aIcon[i] = new Icon(GetType(), "DerNameDeinerApplication." + i + ".ico");
}
...
// ausgeben
int n = 2; // eine Ziffer zwischen 0 und 3
System.Drawing.Icon(aIcon[n]);
Die Icon müssen deinem Projekt als Verweise 0.ico bis 3.ico hinzugefügt werden.
Was ich vergessen habe zu erwähnen ist, dass diese Problem nur dann auftritt wenn die form.Opacity also die Transparenz des Forms nicht auf 1(nicht transparent) sondern auf einen Wert unter 1 gesetzt wird.
Jo, ne, hat sich irgendwie gelöst, denke ich jedenfalls...
Aber des mit dem null zuweisen klingt eigentlich auch ganz interessant, nur könnte daraus irgendwie eventuell auch ein nicht zu erwartendes Laufzeitverhalten resultieren
Aber danke soweit, wollte nur wissen, ob es irgendwie möglich ist, dass eben ein Handler überhaupt net angesprochen wird, ich mein, man kann es natürlich so machen, dass man beispielswiese die komplette Komponente selbst bastelt und dann ausschließlich die eigens definierten Events behandelt, allerdings wäre des eigentlich zu viel Aufwand für den von mir gesuchten Einsatzzweck.
Aber danke soweit
Danke für den Beitrag, habe es ausprobiert und funkt einwandfrei. Auch der Tipp mit Mutex und Monitor war echt ziemlich nützlich. Ich habe schon auf anderen Seiten was mit lock gefunden aber das war so kryptisch das man da als Anfänger sich nich viel rausdenken kann!
MfG
Kapp.Sparda
Da sucht man sich nen Ast und findet nichts, bis man auf mal diese schöne projekteinstellung namens "Enable unmanaged code debugging" findet.. super *g*