Danke trotzdem für deine schnelle Antwort das hat mir echt schon sehr weiter geholfen.
Ich benutze Visual Studio 2010 Professional und Office 2010.
Danke!
MfG Philipp
Hallo,
"Hit-Testing" wird benötigt, wenn man (Maus-)koordinaten-genaue Auswertungen für ein UIElement haben möchte, siehe:
http://msdn.microsoft.com/en-us/library/ms752097.aspx
und dort die "Note" zu IsHitTestVisible
MfG,
Probe-Nutzer
Schande über mein Haupt. Die Ursache war ein verrutschtes GetStream()...
loks schrieb:
Schockster schrieb:
Ist es jetzt möglich, dass es ein Programmierfehler ist [...]
Ehm, ich dachte das wäre von Anfang an klar gewesen? Natürlich ist es ein Programmierfehler, was denn sonst? Gremlins? Nur ohne Kenntnis des (relevanten) Codes kann man hier nicht mehr machen als raten.
Schockster schrieb:
Wieso sollte es dann bei mir problemlos funktionieren?
Newsflash: Dein Programm funktioniert offensichtlich _nicht_ problemlos. Es scheint eher so das es zufällig auf deinem System funktoniert. Klassischer Fall von WOMM (Works on my machine)
http://www.codinghorror.com/blog/2007/03/the-works-on-my-machine-certification-program.html
Haha :D. Dank dir kann ich über mich selbst lachen. Naiv von mir, allerdings ist es kein klassischer Fall von works only on my machine, weil es ja auch scheinbar auf allen PC's mit Visual Studio funktioniert.
Thema hat sich jedenfalls erledigt. Das nächste mal poste ich Code egal was komme und geschehe.
Danke nochmal an die Leute die versucht haben mir zu helfen.
Hallo zusammen
Ich habe hier einen kleinen Healthmanger und Healthagent auf UDP basis programmiert. Der Healthmanager waret auf eingehende verbindungen von den agenten und zeigt an ob diese aktiv sind. Jeder agent sendet dabei einen identifier "Server1","Server2" ect. welcher von dem Healthmanger erkannt wird. Auf der grundlage des identifiers und der aktuellen zeit werden Webserver-objekte angelegt.
Nun möchte ich das programm dahingehend optimieren, dass die aktiven Webserver instanzen durch den Healthmanager in eine liste aufgenommen werden. Sobald einer dieser agent kein signal mehr sendet, soll dieser aus der liste gelöscht werden. Zu jederzeit soll also eine frische liste angezeigt werden mit den aktiven servern, welche noch ein signal senden. Und genau hier ist der punkt wo ich nicht weiterkomme. Bin relativ neu im bereich netzwerk/socketprogrammierung.
Bin für jede hilfe dankbar.
Healthmanager
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
using System.Net;
using System.Threading;
namespace ConsoleApplication3
{
class HealthMonitor
{
public static List<Webservers> getServers;
static void Main(string[] args)
{
getServers = new List<Webservers>();
HealthMonitor h = new HealthMonitor();
Thread th = new Thread(new ThreadStart(h.start));
th.Start();
}
public void start()
{
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
int receive;
//string message;
byte[] data;
//bind server to port 9050
IPEndPoint ipi = new IPEndPoint(IPAddress.Any, 9050);
server.Bind(ipi);
Console.WriteLine("Listen for clients: ");
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint Remote = (EndPoint)(sender);
while (true)
{
data = new byte[1024];
receive = server.ReceiveFrom(data, ref Remote);
string sidentifier = Encoding.ASCII.GetString(data, 0, receive);
DateTime serverdate = System.DateTime.Now;
//Creates a new Webserver instance with date and time.
Webservers web = new Webservers();
web.name = sidentifier;
web.date = serverdate;
Console.WriteLine("Received Message from client: "+web.name+" "+"Datetime: "+web.date);
server.SendTo(data, receive, SocketFlags.None, Remote);
}
}
}
}
Webserver
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Webservers
{
public string name{get;set;}
public DateTime date { get; set;}
}
}
Healthagent
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Net.Sockets;
using System.Net;
namespace agent
{
class HealthAgent
{
static void Main(string[] args)
{
HealthAgent ha = new HealthAgent();
string argument = args[0];
ha.start(argument);
}
public void start(string argument)
{
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Unspecified);
Console.WriteLine("Start sending data to localhost: ");
IPEndPoint sip = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9050);
while (true)
{
Thread.Sleep(1000);
Console.WriteLine(argument.ToString());
byte[] data = ASCIIEncoding.ASCII.GetBytes(argument);
s.SendTo(data, sip);
}
}
}
}
Ok das habe ich nun auch so gelöst gehabt. Dachte da gibt es eine schönere Lösung.
Das Problem ist das ich eine Nachricht von einem anderen Programm bekomme eine UserMessage und darauf schalte ich mich in den Vordergrund.
Noch ein Problem:
Meine andere Anwendung wird im Vollbildschirmmodus ausgeführt. Die Taskleiste ist auch nicht sichtbar. Wenn nun aber mein Programm in den Vordergrund kommt wird die Taskleiste auch mit angezeigt. Wie kann ich das verhindern?
Dann schreib dir ein Programm das da logfile loescht. Den Pfad kannst eins zu eins deinem Programm durch einen Custom Build Step in der Buildconfiguration im VS als Parameter uebergeben.
Tippgemeinschaft schrieb:
Es gibt noch die sc.exe zum installieren von Diensten, die ist standardmässig bei Windows dabei, ohne die Utils installieren zu müssen.
http://www.upbloggen.de/ubde/?p=3227 hier gibts auch noch ein GUI dafür.
matze94 schrieb:
char chFirmwareName[...];
public string[] chFirmwareName;
sollte das gleiche sein oder?
Nein, C++-char[] kannst Du nicht einfach in C#-strings[] mappen.
Die MSDN hat viele Beispiele dazu.
Nachtrag: Bin jetzt fast fertig und musste noch an anderen Stellen solche kleinen Korrektur-Faktoren addieren, gehört wohl dazu. Nun taucht am Ende aber noch ein sehr seltsamer Fehler auf, den ich gar nicht verstehe (vielleicht ein Bug im Visual Studio):
Bei den Spalten-Überschriften kann ich den Text nach Belieben horizontal und vertikal ausrichten (Near, Center, Far), das "StringTrimming.EllipsisCharacter" funktioniert einwandfrei.
Anders bei den Daten-Zeilen, da funktioniert das Trimming nur wenn die Spalte linksbündig ist. Bei "Center" und "Far" keine Trimmung. Der Code ist praktisch der Gleiche wie bei den Spalten-Überschriften.
Einziger Unterschied ist, dass ich bei den Überschriften die Textbreite mit "ListView.Columns[e.ColumnIndex].Width" auslese, bei den Daten-Spalten mache ich das mit "e.Graphics.MeasureString(e.SubItem.Text, TextFont).Width".
Man muss die "gemessene" Textbreite da aber noch mit 4/3 multiplizieren, hab ich hier so gelesen und stimmt auch
http://www.tek-tips.com/viewthread.cfm?qid=909509
Also wenn da schon so ein Faktor-Bug im Visual-Studio drin ist, dann könnt's ja sein dass bei "Center" und "Far" das Trimming bei Daten-Zeilen auch verbuggt ist. Boah, bringt mich das drauf, ich geh mal besser schlafen, vielleicht hat ja morgen von Euch einer 'n Tipp.
Grüsse
Hallo Leute,
verwendet von euch jemand das NLog Logging Framework? Wenn ja, könnt ihr mir vll.
weiter helfen. Ich habe das Problem, dass mir das ding alte Log files nich mehr löscht, obwohl ich es so konfiguriert habe, dass er max 14 Tage loggen soll!
Hier die NLog.config:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="debug"
xsi:type="Debugger"
layout="${date:format=HH\:mm\:ss} | ${level} | ${message}" />
<target name="debugException"
xsi:type="Debugger"
layout="${date:format=HH\:mm\:ss} | ${level} | ${message} | ${exception:format=tostring}" />
<target name="file"
xsi:type="File"
archiveEvery="Day"
maxArchiveFiles="14"
fileName="${basedir}/Logs/${shortdate}.txt"
layout="${date:format=HH\:mm\:ss} | ${stacktrace} ${message}"/>
<target name="fileException"
xsi:type="File"
archiveEvery="Day"
maxArchiveFiles="14"
fileName="${basedir}/Logs/${shortdate}_Exceptions.txt"
layout="${date:format=HH\:mm\:ss} | ${level} | ${message} | ${exception:format=tostring}" />
</targets>
<rules>
<logger name="*"
minlevel="Trace"
writeTo="debug,file" />
<logger name="*"
minlevel="Error"
writeTo="debugException,fileException" />
</rules>
</nlog>
DAnke grüße
Hallo nochmal
So habe das nun mal getestet was in dem Link stand. Das hat funktioniert.
Das Problem ist aber das ich die Nachricht in dem untergeordneten UserControl im ViewModel benötige. Wie mache ich das denn?
Muß ich dir alles vorkauen?
Jo kannst von mir aus auch gleich runterschlucken.
Gereizt? Heute noch nicht zum Zug gekommen. Ein Ohhhh von mir.
Trotzdem danke für die Antwort.
Hallo Forenmitglieder,
ich programmiere gerade ein Tool zum Abrufen von Messdaten einer SPS. Die SPS hält die Daten der letzten Stunde (3600 messwerte) gespeichert. Auf meiner Oberfläche können diese per Button in eine DataTable1 eingelesen werden. Diese Datatable1 ist bei dem DataGridView und dem Chart unter DataSource eingetragen. Vom Datagridview wird auch alles richtig angezeigt. Nur bei dem Chart nicht. Ich kann auch nicht im Series Editor eine Datasetspalte für die YValueMember auswählen nur eine "0" oder "None" bei XValueMember stehen mir alle Spalten der Datatable1 zur verfügung.
Wisst ihr woran das liegen könnte. Es gibt auch einfache Beispiele im Internet dazu, aber die funktionieren genau aus dem Grund bei mir auch nicht.
Ich hoffe ihr könnt mir weiter helfen.
Grüße Lexang
Edit: Screenshot http://imageshack.us/a/img809/7770/chartbinding1.png
Hallo Leute,
ich möchte mich mit .NET WebService auf basis von MVC etwas einarbeiten:) Nun ich hab wenig ahnung von webtechnologien, html5,css3, jscript etc.
Nun hab ich mal in VS2010 ein webservice MVC projekt erzeugt, und da hängt ja schon ganz schön viel zeugt sind, bin da ja schon fast überfordert;)
Nun frage ich mich ob es ein gute tutorial gibt, welches auch mir das MVC konzept berschreibt, kenn ihr euch damit aus, wisst ihr ein gutes?
Im grundgenommen will ich irgendwann ein skalierenbaren webservice entwicklen, auf denen sich user einloggen können, und projekt informationen aus datenbank ziehen möchten.. deswegen frag ich mich auch , ob die MVC #net webservice technologie auch skalierbar ist, viel traffic und so.. wenn ihr vesteht!?
GRüße und danke:)
David W schrieb:
MVVM Like ist es wenn du das Verhalten einfach in eine TextBox ableitung machst, ein Custom Control -> Und dann bist du wieder bei dem Control von mir
(Ein AttachedBehavior tut es aber auch, wenn du keine Ableitung willst.)
@Andreas XXL
In deiner Lösung musst du nur noch den CaretIndex vorher merken, dann kannst du ihn neu setzen, dadurch springt der Curser nicht immer ans Ende wenn man im Text etwas ändert oder pastet.
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{
var oldIndex = textBox1.CaretIndex;
var help1 = Regex.Replace((textBox1.Text), @"\D", "");
textBox1.Text = help1;
textBox1.CaretIndex = help1.Length > oldIndex ? oldIndex : help1.Length;
}
Schwieriger ist es nur wenn man noch Minimum, Maximum, Dezimalstellen sowie Negative Werte erlauben möchte.
Danke!
Daran hatte ich noch nicht gedacht.