Ok danke schonmal, hatte etwas der Art befürchtet
Weil dann muss der Code erstmal entsprechend umstrukturiert werden damit das geht bei mir, wird es dann aber wohl auch wert sein...
Das Entity Framework ist inzwischen das von MS empfohlene Framework, wobei es Performancefallen hat (Mit etwas Suche findet man aber dazu einige Tipps wie z.B. http://lmgtfy.com/?q=entity+framework+performance+tips). Was du mit den Templates meinst, bin ich mir gerade nicht ganz sicher*, da ich EF immer mit den "Code First"-Ansatz verwendet habe (der ab der kommenden Version auch der einzig verbliebene ist).
* Ich nehme einmal an das du die Templates meinst, um aus einer bestehenden Datenbank die gesamte Klassenhierachie generieren zu lassen.
Hallo,
für den Fall dass der Catch-Block keine fangende Variable besitzt könnte die Aufrufliste im Visual Studio behilflich sein zumindest grob den Punkt wo die Exception geworfen wurde herauszufinden.
Guten Abend zusammen,
in der DataGridView (WinForms) sollte der User über die Tab-Taste in einer bestimmten Zeile immmer nur eine Zeile weiter springen in eine DataGridViewTextBoxColumn (nicht in die nächste Zelle).
Dafür habe ich folgendes versucht
public class DataGridViewTab : DataGridView
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
//if (keyData == Keys.Tab)
//{
// return true;
//}
if (this.CurrentCell is DataGridViewTextBoxCell)
{
int iIndex = this.CurrentCell.RowIndex +1;
DataGridView dg = new DataGridView();
this.CurrentCell = dg[5, iIndex];
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
Leider erhalte ich hier die Fehelermeldung IndexOutOfRange.
Wie kann ich es umsetzten, dass mit TAB quasi immer der RowIndex um 1 erhöht wird, der Focus aber immer in der selben Spalte bleibt??
Hallo,
ich schreibe an einer Software, welche eine USB-Kamera (in diesem Fall die PS-Eye mittels CodeLaboratories Treiber) einbindet. Als Framework zur Einbindung der Kamera verwende ich AForge für C# unter Windows 8.1 mit VisualStudio 2013 Ultimate.
Die Kameraerkennung mittels AForge.Video.DirectShow.VideoCaptureDeviceForm funktioniert auch, aber sobald das Target-Framework geändert wird (bspw. von 4.5.1 auf 3.5), wird die Kamera nicht mehr gefunden. Auch das nachträgliche Rücksetzen auf Version 4.5.1 lässt diese dann auch nicht mehr auffinden.
Hätte jemand eine Idee wo die Ursache eines solchen Verhaltens liegt?
Grüße,
Spacemuck
TabIndex ist eine Eigenschaft und kann somit zur Laufzeit durch einfache Zuweisung
geändert werden. Etwa so:
button1.TabIndex = 2;
button2.TabIndex = 1;
textBox1.TabIndex = 3;
...
Das ist vermutlich, weil das Property gleich heisst wie der Datentyp. Also Sachen wie WindowState = WindowState.Normal mag der Compiler eventuell nicht. Probier mal, den Namespace auszuschreiben: WindowState = System.Windows.WindowState.Normal;
Vielen Dank für alle Tips.
Da ich nicht ganz Bewandt mit dem Thema bin, hatte ich den Weg gewählt, die DLL über einen Decompiler auszulesen und habe die dann manuell kopiert und somit das Programm komplett neu gebaut. Dadurch kann ich nun fröhlich frei im Quellcode debuggen
... hatte noch wo anders einen Bug, so dass sich das jetzt erledigt hat. Aber der Tip ist trotzdem sehr nützlich zum Abfange des Schließens des Programms.
Vielen Dank.
Was genau hast Du den vor? Du willst eine UI für deinen Service oder? Wenn Ja:
Dann bau dir ein WCF Service in deinen Win-Service, und eine UI Host mit der du dich auf den Service verbinden kannst!
Wenn nein: Vergiss den letzen Absatz;)=
Hallo
Zunächst erstelle ich verschiedene Labels.
...
System.Windows.Forms.Label lbJan = new System.Windows.Forms.Label();
lbJan.MaximumSize = new Size(70, 20);
...
Danach erfolgt die Abfrage des Umsatzes.
...
Umsatz umsatz = KundenUmsatz(iJahr, iKundenNr);
...
Anschließend wird die Summe an das Label gebunden
Auch hier hatte ich schon den Versuch mit .ToString("c2") (ohne Erfolg)
...
lbJan.Text = umsatz.Januar.ToString();
...
Und das Label wiederum an an TableLayoutPanel
...
tblUmsatz.Controls.Add(lbJan, iSpalte, 1);
...
Soweit so gut ... Ergebnis stimmt auch.
Die Daten werden nun nach Excel exportiert und die einzelnen Monate aufsummiert.
Jetzt vermute ich, dass die Formatierung nicht richtig erkannt wird.
Nur die Zahlenwerte, die keine Kommazahl sind, werden aktuell in die Berechnung mit einbezogen.
Hier mal noch die Export-Funktion
...
for (i = 1; i <= 6; i++)
{
for (j = 1; j <= 7; j++)
{
Control c = tblErsteJahreshaelfte.GetControlFromPosition(i, j);
if (c == null)
{
}
else
{
oSheet.Cells[z, s] = Convert.ToDouble(c.Text);
z++;
}
}
s++;
z = 4;
}
...
oSheet.Range["B10"].Value = "=SUM(B4:B9)";
oSheet.Range["C10"].Value = "=SUM(C4:C9)";
...
Ich habe die einzelnen Zellen auch schon versucht zu formatieren, dennoch werden keine Summen gebildet
...
Excel.Range rg12 = oSheet.get_Range("B4", "H10");
rg12.NumberFormat = "#,##0.00 $";
...
Nun meine Frage: An welcher Stelle formatiere ich falsch bzw. muss ich das richtige Format zuweisen??
Grundsätzlich würde sich das Problem wie folgt lösen lassen
-Schreibe in eine Zelle eine "1"
-Kopiere diese
-Wähle deine Spalte mit den falsch formatierten Zahlen
-Wähle "Bearbeiten - Inhalte einfügen - Multiplizieren"
Jedoch ist dies nich benutzerfreundlich ... also wenn dann nur als "Code-Lösung". Wie würde dies dann aussehen?
DANKE!
Kurz:
H.323 kommt aus dem Telecom-Sektor, ist sehr vollständig, aber auch komplex und etwas angestaubt. Trotzdem wird es aus kompatibilitätsgründen und dem massenweisen Einsatz in älteren Telecom-Geräten noch lange weiterlebern. (Der Standard wird auch noch gepflegt und das Protokoll weiterentwickelt).
SIP kommt dagegen aus dem Internet-Milieu (IETF) und ist als simplere Alternative gedacht. Es ist neuer und offener als H.323 und wirkt insgesamt pragmatischer und frischer. (über die Jahre werden die Call Flows mit SIP aber auch immer komplexer.)
Für eine Neuentwicklung würde ich SIP empfehlen. Insbesondere im Open-Source bereich, oder zum üben. Durch die Offenheit und IETF-Nähe findet man auch viel mehr Material im Internet als für H.323.
jonnywhite7 schrieb:
...
Sind dir Membervariablen vertraut? (Du nutzt ja auch schon eine, sollte also kein Problem sein)
Derzeit verwendest du in den Methoden nahezu ausschließlich lokale Variablen, um aber den Stand über eine Funktion hin zu merken musst du diese auch so halten, das die anderen Methoden darauf zugreifen können. Sprich die Programmwahl und die Lautstärke wären wohl als Membervariablen auch ganz gut geeignet.
Davon abgesehen: Du solltest Variablen und Methoden möglichst sprechend nennen. Was soll den bitte "fernSeher" für ein Name für einen Boolwert sein (Ganz davon abgesehen frage ich mich warum das S groß geschrieben ist, Fernseher ist ein Wort, bei "programmWahl" kann ich ja noch irgendwo einsehen [auch wenn ich es eher "sender" nennen würde])? Besser wäre wohl "istEingeschaltet".
Und wenn du dann die Membervariablen auch verwendest, kannst du diese natürlich auch in den anderen Methoden verwenden (z.B. für die Ausgabe). Sofern du auf diese Werte von außerhalb lesend zugreifen können willst, könntest du Properties verwenden.
z.B. "public IstEingeschaltet { get; private set; }"
und dann kannst du über dein Objekt (hier "groß1" - auch ein schlechter Name), darauf zugreifen "groß1.IstEingeschaltet".
Hallo,
ich bin dabei mich in C# einzuarbeiten (habe C & C++ programmiert).
Ich möchte einen schnellen Einstieg für kleine Win-Programme mit Oberfläche.
Was benutzt du für ein Buch oder Tutorial ? Hab in nächster Zeit das gleiche vor...