Wayne2011 schrieb:
Vllt nettes FAQ oder bin ich der einzige der so dumm war um über den Fehler bzw nicht ausformulierten Quellcode bei msdn zu fallen?^^
Ich habe gerade keinen Zugriff auf die MSDN (die Seite ist seit Stunden down) und kann daher nur meine MSDN Library auf meinem Computer zur Hilfe nehmen. Aber bei mir sieht das Beispiel so aus:
ToolStripMenuItem toolStripItem1 = new ToolStripMenuItem();
private void AddContextMenu()
{
toolStripItem1.Text = "Redden";
toolStripItem1.Click += new EventHandler(toolStripItem1_Click);
ContextMenuStrip strip = new ContextMenuStrip();
foreach (DataGridViewColumn column in dataGridView.Columns)
{
column.ContextMenuStrip = strip;
column.ContextMenuStrip.Items.Add(toolStripItem1);
}
}
private DataGridViewCellEventArgs mouseLocation;
// Change the cell's color.
private void toolStripItem1_Click(object sender, EventArgs args)
{
dataGridView.Rows[mouseLocation.RowIndex]
.Cells[mouseLocation.ColumnIndex].Style.BackColor
= Color.Red;
}
// Deal with hovering over a cell.
private void dataGridView_CellMouseEnter(object sender,
DataGridViewCellEventArgs location)
{
mouseLocation = location;
}
Entscheidender Unterschied, welcher mir auffällt, ist das behandeln von CellMouseEnter . Zudem steht bei mir noch, dass das Ganze teil eines grösseren Beispiels ist, welches man herunterladen kann und man hier somit nur einen Ausschnitt sieht. Wäre also durchaus vernünftig, wenn etwas nicht so geht, wie man es erwartet, zuerst das ganze Beispiel anzuschauen und zu prüfen, ob dieses auch nicht geht oder ob man einfach einen Fehler gemacht hat. Ich glaube, dass du einfach nur einen Fehler gemacht hast und nicht ganz genau hingeschaut hast
Und zuletzt, wenn in der MSDN wirklich ein Fehler wäre, dann sollte man dies in der MSDN melden und nicht hier in der FAQ abspeichern.
Grüssli
Hi,
Danke an alle.
Ich verwende jetzt die Base64 Konvertierung (und Read/WriteallBytes) für die Bilder, das spart sogar massig Speicher
Zum Glück unterstützt C++/CLI auch .Net Code ...
Die Verschlüsselung habe ich jetzt so beibehalten, gespeichert in Unicode.
Bisher geht's also, auch die gespeicherten Dateien konnte ich importieren. Nur C++ kann sie jetzt nicht mehr lesen
Irgendwie steh ich grade total auf den Schlauch (oder es ist noch zu Früh am Morgen).
Ggf mangelt es gerade nur am Verständnis für die Funktionsweise des Scrollbars.
Ich habe einen Viewport mit X-Size und Y-Size, und eine ClientArea mit einer (meist) viel größeren X-Size und Y-Size.
Bisher habe ich einfach die Min, Max Werte meiner ClientArea als min und max für die Scrollbars eingesetzt. Und die aktvalue als Start für den Viewport. Das Klappt auch zum Teil. Damit vergrößert sich aber nicht der Scrollbalken. Wie muss ich berechnen das sowas klappt?
danke für die Antworten. Ich bin gerade dabei, Export Tables auszulesen (ich versuche es). Ich habe keinerlei Erfahrung auf diesem Gebiet, aber ich denke, dass sollte klappen
@Dravere
Wir haben uns wahrscheinlich schon wieder falsch verstanden. Ich habe mich simpel auf das "abstrakte" Shape bezogen welches seine Daten und Präsentation von einem übergeordneten Controller injiziert bekommt:
Dravere schrieb:
Shape shape = new Shape();
shape.Data = new ShapeData();
// Werte zuweisen ...
shape.View = new EllipseView();
Diese Technik ist nach meinem Verständnis ein dependency injection/inversion of control wie es von Fowler and friens populär gemacht wurde. Also das Objekt bestimmt nicht selber mit wem es etwas zu tun haben möchte sondern bekommt seine mates reingewürgt. Dass diese Technik für MVC notwendig/sinnvoll ist will ich nicht bestreiten.
Meine Anmerkung mag vllt wie Erbsenzählerei/Trivialität anmuten aber ich habe gerade ein Projekt auf den Tisch wo es genau darum geht. Mein ehemaliger Kollege hat mir als Projekt ein Reporting system vermacht wo alles mögliche erbt/vererbt, verklebt und verbacken ist und Objekte an die Persistenzschicht gefesselt sind obwohl sie gar keine Persistenz besitzen. Als ich diesen Thread gelesen habe habe ich gedacht "genauso hätte es mein Kollege machen müssen".
Jetzt habe ich erstmal das alles aufgerissen und genau dieses von Dir beschriebene Prinzip angewandt: Die Berichte bekommen ihren Plotter (Pie, Bar, ...), ihre Daten als verschiedene Repository-Objekte und die Gruppierungen über entsprechende Modelobjekte von außen zugewiesen und arbeiten mit ihnen über Schnittstellen. Jetzt kann sich jeder seinen Bericht wie in einem Restaurant mit einer Speisekarte zusammenstellen, alle sind glücklich und ich kann mich endlich wieder meinen Aufgabe widmen.
CSL schrieb:
Wie löschst du Objekte? Bedenke das der GC ein Objekt erst aufräumen kann wenn alle Referenzen darauf weg sind, dh auch alle Event handler etc.
Das war das Problem, mein Eventhandling war noch nicht abgemeldet. Musste nun doch einmal durch alle zu löschenden Objekte rennen um genau dies zu machen.
Dravere schrieb:
Darf ich zuerst mal fragen, wie du den Speicherverbrauch deiner Anwendung ermittelt hast ohne Speicherverbrauch-Tool?
Es geht mir nur darum, dass du dazu hoffentlich nicht den Taskmanager benutzt hast
Grüssli
Naja das hab ich mit GC.GetMemoryUsage gemacht. bringt zumindest nen halbwegs brauchbaren Wert.
Besten dank euch allen.
hey,
habe bei folgendem script bzw. script aufruf ein problem:
c#:
if (Page.IsPostBack)
{
string startPlace = Page.ClientQueryString + "#formBegin";
Page.RegisterStartupScript("myScript", "<script language=JavaScript>jumpToFormStart('" + startPlace + "');</script>");
}
und das JS:
function jumpToFormStart(startPlace) {
var theNewPlace = "index.aspx?" + startPlace;
self.location = theNewPlace;
}
Auf der Website welche bei mir local läuft funktioniert das Script super, im ie sowie im Firefox, bei der Webpage welche allerdings auf dem Server liegt funktioniert das Script nur im Firefox.
hat da vllt. jemand eine Idee woran das das liegen könnte?
Hallo Leute,
ich habe einen Windows Service geschrieben, welcher irgendein Programm unter einer bestimmten Benutzerkennung starten soll. Der Windows Dienst ist installiert und als LokalesSystem angemeldet.
Probiert habe ich:
- Process.start(string file, string user, SecureString pw, string domain) -> Exception WIn32 Zugriff verweigert
- CreateProcessWithLogonW(...) -> Exception Error #5
- LogonUser(...), CreateProcessAsUser(...) ->Exception Error #1314
Process.Start(...) und CreateProcessWithLogonW(...) startet aus einem "normalen" Programm, welches kein Windows Dienst ist ohne Probleme das entsprechende Programm (wird auch unter der angegebenen Benutzerkennung ausgeführt)
LogonUser(...), CreateProcessAsUser(...) funktioniert aus einem "normalen" Programm nicht.
Hat jemand eine Idee wie sich dieses Problem lösen lässt?
Kann man die mit sn.exe erzeugte Schlüsseldatei auch in andere Entwicklungsumgebungen als VS benutzen oder ist das eine geschlossene Microsoft-Veranstaltung?
Firefighter schrieb:
Und mal ein kleiner Tip: Du hättest das ganze auch einfach probieren können
hab ich gemacht. läuft jetzt auch. der compiler hat gemeckert, aber es war ein anderer grund.
Hier noch mal ohne Fehler:
public MyDelegate(Base o1, object irgendwas);
public class Base
{
protected static Dictionary<Type, Dictionary<string,MyDelegate>> dict;
public void Do(string s, object value)
{
dict[GetType()][s](this,value);
}
}
public MyDelegate(Base o1, object irgendwas);
public class D1: Base
{
static D1()
{
Type myType =typeof(D1);
dict.Add(myType,new Dictionary<string,MyDelegate>();
dict[myType].Add("IntValue",new MyDelegate(..));
...
}
int IntValue;
}
public class D2: Base
{
static D2()
{
Type myType =typeof(D2);
dict.Add(myType,new Dictionary<string,MyDelegate>();
dict[myType].Add("StringValue",new MyDelegate(..));
...
}
string StringValue;
}
Gibt es einen halbwegs einfachen und schönen Weg einen Local COM Server in C# zu implementieren?
Bis jetzt hab' ich nur die Möglichkeit gefunden IClassFactory selbst zu implementieren, und dann mit CoRegisterClassObject (per PInvoke) zu registrieren.
Gibt es da eine elegantere Variante?
Idealerweise sollte auch gleich die Type-Library im selben C# Projekt definiert werden das auch den Server implementiert.
Das hat MS selber geschrieben.
Die besten DockingControls gibts leider nur gegen bares.
http://www.telerik.com/products/winforms/dock.aspx
http://www.devcomponents.com/
http://www.infragistics.com/dotnet/netadvantage/winforms/windockmanager.aspx
Eventuell ist das hier gut:
http://sourceforge.net/projects/dockpanelsuite/
musst du mal schauen.