Dann deklarier die Win32-Funktion den 2. parameter als int 😃
Und den letzten ebenfalls als int 😃
Oder ändere den Datentyp der 2 variablen die an die funktion übergeben werden.
Am ende ist sowieso alles nur eine Zahl die übergeben wird
also im internet habe ich diesen C++ code gefunden:
::SetWindowPos(m_hWnd , // handle to window
HWND_TOPMOST, // placement-order handle
rect.left, // horizontal position
rect.top, // vertical position
rect.Width(), // width
rect.Height(), // height
SWP_SHOWWINDOW // window-positioning options);
Lässt sich aber auhc ganz easy nach C# portieren 😃
Habs mal portiert:
public const int SWP_SHOWWINDOW = 0x0040;
public const int HWND_TOPMOST = -1;
[DllImport("user32.dll", SetLastError=true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
Aufruf:
SetWindowPos(Form.Handle, HWND_TOPMOST, 0,0,0,0, SWP_SHOWWINDOW);
Form.Handle ist in dem fall das handle des fensters. also wohl Process.MainWindowHandle
Ich weis nicht ob das mit .NET Boardmitteln geht.
Es gibt jedoch eine kostenpflichtige Skinning komponente mit der kann man windows theme dateien (msstyles) in die anwendung laden!
weis jetzt nur net wie die heißt musst einfach mal bei google nach "skinning windows forms" oder so suchen dann findeste die denk ich mal 😃
Edit: sorry hätte deinen letzten post zu ende lesen sollen 😃!
Guten morgen,
also um Visuelle Stile in deiner Winformsanwendung zu deaktivieren musst du vor dem ersten Application.Run();
Application.UseVisualStyles (oder so ähnlich) auf false setzen.
Grüße,
Jan
Hallöschen,
ist es möglich zur Laufzeit Controls in einem anderen thread erstellen zu lassen und sie nach deren Erstellung der Form hinzuzufügen?
Über die GUI-Thread-Problematik bin ich mir bewusst 😃
Grüße,
Jan
Das werde ich heute abend gleich mal ausprobieren. Echt genial seid Ihr 😃
What the heck,
werd mich gleich mal informieren, das wäre nämlich genial wenn das funktionieren würde 😃
Guten Morgen,
gibt es eigentlich irgendeine Shellextension oder sonstiges programm, dem man einfach die Solution übergibt und es werden automatisch die Programme/Bibliotheken daraus erstellt?
Wäre genial wenn man im Explorer nur noch nen Rechtsklick auf die Solution/Projekt macht und dann gibts da nen Punkt der nennt sich zum Bleistift "Build" und dann werden die Informationen aus der Datei ausgelesen und das Programm erstellt.
Dann müsste man nicht jedesmal das Visual Studio starten was bei sehr großen bei uns schonmal ein paar Minuten dauern kann. 😦
Kennt da vllt. jemand was?
Oder wüsste wie man sowas umsetzen könnte?
Lg Jan
Danke!!!, genau das wollte ich wissen!
Schon s*****e, hab mein VS 2008 noch garnet so lange und bin schon am VS 010 interessiert 😉.
*Closed*
Naja ich mein sowas wie das beim .NET FW 3 und höher und'n VS 2005 war.
Man konnte ja mitn VS 2005 kein LINQ oder Lambda Ausdrücke verwenden, oder irre ich mich da?
Kann auch sein das ich da was verwechsle. klärt mich mal ein bisschen auf 😃
Hallöchen,
gibt es beim kommenden .NET Framework 4.0 eigentlich irgendwelche einschränkungen wenn man mit Visual Studio 2008 arbeitet?
ich bin ganz deiner Meinung - allein aufgrund der Syntax würde ich mit dieser Sprache nicht arbeiten wollen ... Vielleicht sind wir da aber auch alle ein wenig C#-verwöhnt 😉.
Ich glaube das sind wir 😃
Man lernt nie aus 😃 wenn wieder was ist wende dich an die community deines vertrauens ^^
oh sorry net aufgepasst, mein fehler ^^
private void InvokeSelectTab(string FileName)
{
if (this.InvokeRequired)
this.Invoke(new PageInvoke(InvokeSelectTab), new object[] {FileName });
else
{
for (int i = 0; i < tabControl1.TabPages.Count; i++)
{
if (tabControl1.TabPages[i].Name == FileName)
{
tabControl1.SelectedIndex = i;
break;
}
}
}
}
musst nur mit der laufvariable als indexer auf die tabpage collection zugreifen und gucken 😃
ja aber was willst denn du dann? du willst eine tabseite anhand des namens selektieren. und genau das macht die funktion. nicht emhr und nicht weniger.
Guten morgen,
private void InvokeSelectTab(string FileName)
{
if (this.InvokeRequired)
this.Invoke(new PageInvoke(InvokeSelectTab), new object[] {FileName });
else
{
tabControl1.Enabled = false;
for (int i = 0; i < tabControl1.TabPages.Count; i++)
{
tabControl1.SelectedIndex = i;
if (tabControl1.SelectedTab.Name == FileName)
{
tabControl1.Enabled = true;
break;
}
}
}
}
Vllt. so:
private void InvokeSelectTab(string FileName)
{
if (this.InvokeRequired)
this.Invoke(new PageInvoke(InvokeSelectTab), new object[] {FileName });
else
{
for (int i = 0; i < tabControl1.TabPages.Count; i++)
{
if (tabControl1.SelectedTab.Name == FileName)
{
tabControl1.SelectedIndex = i;
break;
}
}
}
}
Wieso du jede Tabpage deaktivierst und wieder aktivierst wenn du doch nur die mit dem übereinstimmenden namen selektieren willst frage ich mich zwar... aber das wirst du mir bestimmt gleich erklären, 😃
Edit: oh aso ok deswegwen machst du das ^^
einfach weniger datens'atze anzeigen. oder vllt. gibt es beim gridview einen virtual mode wie beim listview?
Da hast du nat[urlich recht!
Dann habe ich wohl die Frage nicht richtig verstanden und den verkehrten gedanken gehabt.
sorry 😃
Das singleton w[urde aber in dem fall gut passen. da er ja von [uberall aus auf das object zugreifen m;ochte. sorry f[ur die fehlenden zeichen irgendwie spinnt die tastatur rum ^^
na siehste. am besten du benutzt gleich ein generisches singleton ^^
verstehe nicht was du willst 😦. also f[ur globale objekte verwendet mand as singleton, auf die instanz dadrin kannst du im ganzen projekt zugreifen. oder habe ich da was falsch verstanden?
globale objekte lassen sich mit dem singleton pattern implementieren
die ganzen stream klassen bieten auch asynchrone methoden an.
mit denen duerfte deine anwendung nicht mehr blockieren.
vor jedem lesen pruefen ob nicht EOF erreicht ist
Ich präsentiere das Monolith-Pattern (siehe Bild)...
Die Menge an Zeilen verteilt sich dann gleichmäßig auf:
* 28 Public Fields (nix Properties)
* 50 Public Properties
* 318 Public Methoden
WTF!!! Jetz würde mich aber mal interessieren was ein "Monolith"-Pattern ist, hab schon gegooglet aber nix gefunden. Ist das die "Eierlegende-Woll-Milch-Sau" unter den Klassen? xD
den selben fehler hatte ich mitn vs08
hab dann gegooglelt und da muss irgend n befehl ausgeführt werden und dnan geht alles wieder
nee da gibts was anderes
Icon.GetAssociatedIcon() oder halt mit winapi
Extracticon(file) und als index 0 übergeben!
Hallo hatte bereits einen anderen threead eröffnet bis ich diesen gefunden hatte!
Also mein Problem: ich will das contextmenu das sich beim öffnen auf das icon der form öffnet abfangen und dessen öffnen verhindern. habs schon mit
if(NCHITTEST && 3 || NCHITTEST && 5)
{
m.Result = new IntPtr(0x01); //geklickter beriech wird auf client gesetzt
}
base.wndproc(ref m);
Das hat jedoch nicht geklappt, hat jemand vllt. nen plan worans liegen könnte?
Danke für eure Beiträge
Thread Bitte schließen, hab die antwort in nem anderen thread gefunden. Danke MyC#
Gute nacht,
wie der Titel bereits aussagt suche ich nach einer möglichkeit das Contextmenu das sich mit einem Klick auf das Form icon öffnet abzufangen.
Weis vllt. jemand welche WindowMessage das sein kann?
MfG,
Jan
Das Debugging Feature wird später wohl in die Pro Version kommen, die dann Geld kostet. Die Lizenz ist ja schon verfasst.
wo steht das?
finde ich aber mal unverschämt da ne kostenpflichtige pro version zu machen die dann sicherlich wie der rest von dem redgate zeugs von 100 (geschäzt) bis sonst wie viel credits kostet -.-
Vllt. gleich die CryptoStream Klasse verwenden ^^
Wuhaha genial 😃
Vielen Dank!!!
verwendetes Datenbanksystem: XML
Halloooooooo,
ich arbeite derzeit daran mich in XML-Serialisierung reinzuarbeiten. Nachdem ich es geschafft habe meine Klasse so zu serialisieren wie ich wollte, funktioniert nun die deserialisierung nicht 😦
So sehen meine Klassen aus:
[Serializable]
[XmlRoot("Configuration")]
public class Configuration
{
public List<Group> Groups {set; get;}
}
[Serializable]
public class Group
{
public List<Application> Applications {get; set;}
[XmlAttribute("Name")]
public String Name {get; set;}
[XmlAttribute("Description")]
public String Description {get; set;}
}
[Serializable]
public class Application
{
[XmlAttribute("Name")]
public String Name {get; set;}
[XmlText]
public String Location {get; set;}
}
Mein erzeugtes XML sieht folgendermaßen aus:
<?xml version="1.0"?>
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance"
xmlms:xsd="http://www.w3.org2001/XMLSchema">
<Groups>
<Group Name="Test" Description="Das ist ein Test">
<Applications>
<Application Name="Test Anwendung">C:\test.exe</Application>
</Applications>
</Group>
</Groups>
</Configuration>
Code für das Serialisieren und Deserialisieren:
var tempStream = new MemoryStream();
var xmlSerializer = new XmlSerializer(typeof(Configuration));
xmlSerializer.Serialize(tempStream, config);
var tempObject = (Configuration)xmlSerializer.Deserialize(tempStream);
Nun erscheint in der Deserialiserungszeile der folgende Fehler:
Exception: "Fehler im XML-Dokument (0,0)"
InnerException: "Das Stammelement ist nicht vorhanden"
Nun ist doch aber das Stammelement <Configuration>?
Hoffe Ihr könnt mir weiterhelfen 😃
Mit freundlichen Grüßen,
Ich
Hey super! einen O/R-Mapper für MS Access habe ich schon ewig gesucht. Bisher musste ich mir immer meine Entitäten und sonstige Klassen selbst erstellen, as war sehr umständlich ^^.
Werde das proggy heute abend mal ausprobieren und dir bescheid sagen wie das so mit access funzt 😃
Mit freundlichen Grüßen,
Jan
Hehe supi vielen dank für eure Posts. Dann werde ich heute abend mal anfangen TortoiseSVN bei mir zu installieren und das einzuchecken 😃
Danke!
Guten Morgen gute C#-ler,
ich arbeite seit einigen Monaten in einer Softwarefirma die Versionsverwaltung ala TortoiseSVN, VisualSVN... (weis es jetzt net genau) einsetzt.
Angetan von dieser Art der Quellcodeverwaltung wollte ich nun die Versionsverwaltung mit TortoiseSVN einsetzen. Nun habe ich mich aber gefragt ist das Sinnvoll wenn man allein Hobbymäßig entwickelt, oder ist das besser für echte Teams ab zwei Entwicklern geeignet.
Vllt. könnt ihr meinen Konflikt lösen?
Mit freundlichen Grüßen,
Jan Hafner
Environment.Version für die versionsnummer
oder so ähnlich!
fürn einstieg würde ich lieber etwas weniger kompliziertes machen.
this.Id(x => (Int32)x.DataTypeId); <---???
Die Tabellen in der MDB sind schon erstellt. Mir geht es nur um den Zugriff auf die Datenbank.
Aber wenn du sagst das ich kein installiertes Access brauche dann reicht mir das schon ^^
Verwendetes Datenbanksystem: <MS Access 2003/2007>
Hallöchen,
ich habe folgende Frage:
Muss ich MS Access auf dem Nutzerrechner installiert haben damit ich über OleDB (OleDbConnection) eine verbindung zu einer MS Access 2003/2007 (Abhängig von ConnectionProvider - egal) aufbauen und mit ihr arbeiten kann?
MFG Jan
vllt. solltest du noch erwähnen was du für probleme hast? -.-
das listview von krypton ist nicht im toolkit enthalten da es ein usercontrol der community ist, einfach mal ein bisschen im forum stöbern dann findest dus.
Wenn alle Felder den selben Wert erhalten sollen wäre es über Reflection sicher easy zu machen.
super danke, hat wunderbar funktioniert! ^^
muss ich dieses
devenv /ResetSkipPkgs
bei jedem IDE start mit aufrufen oder reicht da einmal? ^^
Ich stehe vor dem selben Problem.
Hatte vorher Visual Studio 2005 Std, und hab mir Visual Studio 2008 zugelegt. Nun wollte ich meine 2005er Projekte mit 2008er öffnen.
Konvertierungsdialog kommt und am ende von dewr Konvertierung kommt
eine ähnliche Fehlermeldung:
OK Abbrechen
---------------------------_
Bei der Installation von Visual Studio habe ich angegeben das ich nur C# (kein VB, C++, web developer, sql...) installiert haben möchte. könnte das der fehler sein. bin echt ratlos