Moin!
Die folgenden Ausführungen erheben keinen Anspruch auf Vollständigkeit, sie kratzen nur an der Oberfläche.
Zu Deinem Problem: Wenn Du selber zeichnest hast Du einen sichtbaren Bereich.
Sagen wir mal 600 Pixel breit und 400 Pixel hoch. Der kann sich natürlich ändern, wenn der User, die Maske vergrößtert oder verkleinert. Wenn er kleinere oder größere Schriftarten als die Windows Standard Schriftgröße gewählt hat usw.
Also Dein (public int breite = 100; public int anzahlSpalten = 10;) geht nicht!
Das ist also der variable sichtbare Bereich, den Du bei deinem Programmstart erstmalig auslesen und berechnen muß und zwar auf den Pixel genau und natürlich bei jeder Aktion des Users neu berechnen muß. Ich nehme mal an, dass Dein Promm verschieden Schriftarten oder Bitmaps als Hintergründe anbietet.
Dann hast Du etwas, was Du in dem sichtbaren Bereich darstellen möchtest - deine Daten. Der darzustellende Bereich kann größer oder kleiner oder gleich dem sichtbaren Bereich sein. Wenn Du also einen Kalender zeichnen willst, mußt Du wissen, wenn ich eine Zeile zeichne, habe ich z. B. 30 Pixel in der Höhe und 250 Pixel in Breite in Abhängig vom sichbaren Bereich verbraucht.
Also der aktuell sichbare Bereich ist 600 x 400
Zeilenhöhe einer Zeile deines Kalenders ist 30
Zeilenbreite einer Zeile deines Kalenders ist 250
Nehmen wir mal an: Du brauchst 30 Zeilen um einen Jahreskalender vollständig zu zeichnen. Dir fehlen also 300 Pixel für die vollständige Darstellung bei dem aktuell sichtbaren Bereich von 600 x 400. Es muß also ein Scrollbar her. Und jetzt muß du wieder neu rechnen zwischen dem sichtbaren Breich und dem was der User noch sehen kann. Er sieht also z. B. nur die ersten 9 Monate. Will er also die nichtzusehenden Monate sehen (300Pixel) muß er scrollen. Ein Click auf die Scrollbar bedeutet, das Du 30 x 250 neu zeichnen mußt und 30 x 250 des sichtbren Bereichs verwerfen muß. Das einzige was fix ist Dein Kalender pro Zeile und Spalte (30x250) der sichtbare und darzustellende Bereich ist immer nur im aktuellen Kontext der Anwendung fix. Alles andere kann sich durch die Aktionen des Users und Deine Kalenderfunktionen (Bitmaps unterschiedliche Schriftarten etc) jeder Zeit ändern.
HTH und Grüsse - Kalle
Danke erst mal für die Antworten.
C-Thomas, das ist ja der Code aus der Hilfe, den ich mal probiert habe, ich habe ihn in meinem 1.Beitrag nur auf das wesentliche reduziert.
xivVerge, das Interssante daran ist ja.., genauso wie lobs es beschrieben hat.
Was das Framework anbelangt so benutze ich VS2005Prof mit Net 2.0. Allerdings handelt es sich bei mir um eine Klassenbibliothek für intelligente Geräte, das heisst ich greife auf das CompactFramework zu, vielleicht liegt ja da das Problem. Nur wo und wie kann man feststellen, welche Version benutzt wird, ich habe ja nur die Möglichkeit entsprechende namespaces einzubinden.
Ich habe da nämlich noch so eine Ungereimtheit mit dem CompactFramework, die ich in einem anderen Beitrag fragen werde.
Gruss Walter
Du kannst auf Events aus dem Unterfenster reagieren. Also im Hauptfenster
Form f = new Form();
f.GotFocus += new EventHandler(childWindowGotFocus);
f.show();
...
private void childWindowGotFocus(object sender, EventArgs args)
{
this.activeForm = (Form)sender; //Vorher activeForm als memeber definieren
}
Das gleiche kannst du mit LostFocus, Closed usw. machen.
Falls "sender" nicht das Unterfenster ist (bin mir da nicht ganz sicher), kannst du ein eigenes Event erstellen, bei dem du als sender das Unterfenster übergibst, und in "OnFocus" des Unterfensters auslösen.
Jetzt bekommst du immer mit, welches das aktive Fenster ist bzw. welches das letzte aktive Fenster war (verliert ja den Focus beim klicken auf das Menü.
Hallo,
ich empfange eine SNMPTRAP über UDP auf dem Port 162.
so sieht der code aus:
UdpClient listener = new UdpClient(listenPort);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, 162);
while (run == true)
{
try { byte[] bytes = listener.Receive(ref groupEP);
String dataReceived = System.Text.Encoding.ASCII.GetString(bytes); AddMessage(dataReceived);
}
catch (Exception er) { MessageBox.Show(er.Message.ToString()); }
}
das problem ist, daß ich in meinem string immer nur &&%%))((???? und so was stehen habe ! Irgendwie scheint das encoding net zu stimmen.
Hat jemand ne idee wie das funktioniert.
Danke
Gruß Euro.
Servus,
dann wirds wohl daran liegen, dass dein Char[] nicht gefüllt ist. Wenn es daran nicht mehr liegt, dann machst du irgendwas Anderes
mfg
Hellsgore
du legst dir n Fenster an, und zeichnest ein Koordinatensystem ein.
Jetzt rechnest du für jede x-Koordinate die Formel aus (z.B. x²) und zeichnest an die entsprechende Y-Stelle einen Punkt ein.
Wenn du vorher schaust in welchem Bereich die Werte liegen kannst du die Einteilung des Koordinatensystem besser bestimmen.
Ich habe auch eine Neuling-Frage:
Ich benutze einen Array(von Objekten einer bestimmter Klasse) als DataSource und jetzt möchte jeden Attribut zu einer bestimmter Spalte zuordnen.
Wie macht man das??
in ur toolbox u'll find webbrowser.
if u want to start the standard browser by pushing a
button or something else use
System.Diagnostics.Process.Start("www.google.de", "");
this starts the standard browser
System.Diagnostics.Process.Start("www.google.de", "iexplore.exe");
this starts the internet explorer
Hallo zusammen,
ich habe in einem ListView in der ersten Spalte CheckBoxen aktiviert.
Mal angenommen ich habe darin 3 Items und alle CheckBoxen sind auch
checked. Wenn ich jetzt das oberste Item mit einem Mausklick markiere,
die Shift-Taste drücke und dann das letzte Item markiere werden vom
ersten bis zum vorletzten Item die Haken in der CheckBox rausgenommen.
Wie kann ich das verhindern? Oder ist das ein normales Verhalten?
Gruß
gigi`
Hallo,
ich versuche mich gerade an Visual Studio 2005 und Webservices mit C#.
Und zwar versuche ich dort einen Webservice zu programmieren und anschlißend aus einer anderen Anwendung aufzurufen.
Der Webervice läuft und lässt aich auch erfolgreich testen.
Wenn ich den Service jetzt aber z.B. aus einem Windows Anwendungs-Projekt aufrufen will, klappt das nur solange ich auf dem lokalen Rechner bleibe.
Übers Netzwerk kommt dann eine Meldung "Netzwerk nicht erreichbar"
Ich habe unter WinXP Professional schon den iis aktiviert, aber es geht immer noch nicht.
Was hat es mit diesem UDDI Server unter"Webverweis hinzufügen" auf sich?
Was muss ich jetzt noch tun, damit ich auch übers netzwerk auf den Webservice zugreifen kann.? An der Firewall kann es nicht liegen.
phoque
Servus,
deine Fragestellung ist etwas schwammig, da man nicht direkt den code von der VB application kennt. Ich denke mal, du solltest dich eigentlich generell erstmal mit dem ganzen Client / Server - Peer to Peer gedöns beschäftigen.
Beispiele bei www.codeproject.com:
http://www.codeproject.com/cs/internet/AsyncSocketServerandClien.asp
oder Allgemein:
http://www.codeproject.com/cs/internet/
mfg
Hellsgore
Vielen Dank ersteinmal für die sehr informativen Antworten.
@optimizer und nn
Meine Anwedung erfordert keinen harten Echtzeitbetrieb - sie soll nur performant sein . (Ich glaube, dann hätte ich die Finger von diesem Thema gelassen). Das verwendete USB-DAQ-Modul (USB-Messdatenerfassung) hat einen internen 1MByte großen Puffer, in dem knapp 10 Minuten Messdaten zwischengelagert werden könnten. Was natürlich auch keinen großen Sinn macht.
Vielleicht sollte ich das auch einmal erwähnen: Insgesamt sollen drei Analoge Signale mit 200Hz (später evtl. noch schneller) abgetastet werden und anschließend mit verschiedenen Algortithmen (FFT, IIR) verarbeitet werden. Grob: so eine Art Spektrumanalyser für mechan. Schwingungen.
@Zwergli
es wird wohl auf den Ansatz hinauslaufen, dass ich ersteinmal alles in C# realisiere. Ob in meiner Arbeit noch ein Punkt (Performancegewinn/-verlust zw. C und C#) aufnehme, werde ich mit meinem Prof. klären, der zugegebnermaßen ein C und Assembler-Verfechter ist.
Insgesamt beruhigt es mich ja schon, dass es prinzipiell möglich wäre, dass man ggf. C-Code mit C# "mischen" kann. Für mich ist die .NET Umgebung neu, da ich Schwerpunktmäßig mit mit Microcontrollern/DSPs arbeite (studiere) und mir von daher C sehr vertraut ist. Aber das macht ja auch den Reiz einer Diplomarbeit aus, Neuland zu erschließen
Gruß
Kramny