Hmm, probieren geht über studieren.
Rein-theoretisch kann erst Windows XP DoubleBuffering.
Zumindest steht da nen Windows XP davor:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/createwindowex.asp
Mir scheint bisher das ganze Windows.Forms wieder nur ein WinAPI-Wrapper zu sein.
Beispielsweise kennt die ListView in der WinXP-Version noch das Feature "Groups", in Win2k gibt es das noch nicht.
Verwendet man nun die ListView des .net 2.0-Frameworks und benutzt da Groups, dann werden unter Win2k keine Groups angezeigt ;/
Oder hab ich etwas falsch gemacht ?
Und ich dachte bisher die Controls im .net-Framework wären unabhängig von den bestehenden Controls der jeweiligen Windows-Version implementiert worden.
Andererseits steht hier:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformscontrolstylesclasstopic.asp
nichts davon, dass das erst ab WinXP funktioniert.
(Oh, da steht das mit Flicker-Reduzieren nochmal etwas anders!!)
Naja, hier habe ich gerade keine Win2k-Maschine zwecks testen
Das ist dann die Zeitdifferenz zum Anfang desselben Tages. Ergibt Sinn. Allerdings ist TimeSpan auch kein reiner Uhrzeittyp, man kann damit ja auch längere Zeiträume angeben. Das (non-)Problem der Dummy-Felder bleibt bestehen.
Servus,
1. Neues Projekt -> Class Library (C#)
2. Add References "System.Drawing"
3. using System.Drawing; using System.Reflection; einfügen
4. Bilder hinzufügen (Embedded Resource <<< WICHTIG)
5. Folgenden Code verwenden:
using System;
using System.Drawing;
using System.Reflection;
using System.Windows.Forms;
namespace PicDll
{
public class Picster
{
public Picster()
{
}
public Image GetImageFromResource(int imageParam)
{
Assembly assembly = this.GetType().Assembly;
switch (imageParam)
{
case 1:
return new Bitmap(assembly.GetManifestResourceStream("PicDll.Pics.1.ico")) as Image;
case 2:
return new Bitmap(assembly.GetManifestResourceStream("PicDll.Pics.2.ico")) as Image;
default:
return null;
}
}
}
}
GetManifestResourceStream("PicDll.Pics.2.ico"):
PicDll = NameSpace
Pics = Ordner angelegt in denen die Bilder stecken
x.ico = Bild
Fertig..
1. Neues Projekt in dem Dll Projekt -> WindowApp (C#)
2. Add References "Project Output deiner Dll"
3. Folgenden Code verwenden:
blablubb dein MainKram Zeugs
using PicDll;
namespace PicClient
{
public class FormToteKatze : System.Windows.Forms.Form
{
blablub....
private void button1_Click(object sender, System.EventArgs e)
{
Picster picObj = new Picster();
this.pictureBox1.Image = picObj.GetImageFromResource(1);
}
}
}
Fertig
Ist nur ein Ansatz und sollte bearbeitet werden Für alle Schäden die nach Ausführen dieses Quellcodes entstehen, verweise ich auf meine Katze.
mfg
Hellsgore
Die Frage sollte eher lauten, in wie weit sich das .NET-Framwork in Zukunft durchsetzen kann / noch durchsetzt. Es stellt ja ein Konzept dar, bei dem die verwendete Sprache zweitrangig ist. Egal ob C#, C++.NET, VB.NET, ..., der Zugriff und die Verwendung des Frameworks bleiben gleich.
Servus,
guck dir mal die Eigenschaft "DataMember", "DataSource" etc. etwas genauer an:
http://msdn.microsoft.com/library/deu/default.asp?url=/library/DEU/cpref/html/frlrfsystemwindowsformsdatagridclassdatasourcetopic.asp
http://msdn.microsoft.com/library/deu/default.asp?url=/library/DEU/cpref/html/frlrfSystemWindowsFormsDataGridClassDataMemberTopic.asp
Ich denke mal damit wirst du schon klarkommen...
mfg
Hellsgore
Servus,
mit DataGrid.Name bekommst du schonmal nur den Namen des Controls. Das bringt dir also garnichts.
DataGrid.CaptionText wird wohl das sein was du suchst.
mfg
Hellsgore
Servus,
wiedergefunden:
[DllImport("user32", CharSet=CharSet.Auto)]
private extern static int SendMessage(IntPtr hwnd, int wMsg, int wParam, long lParam);
private const int EC_LEFTMARGIN = 0x1;
private const int EC_RIGHTMARGIN = 0x2;
private const int EM_SETMARGINS = 0xD3;
// 20 pixel rechts Platz lassen
SendMessage(this.Handle, EM_SETMARGINS, EC_RIGHTMARGIN, (65536 * 20));
this.Handle ist auf das TextBoxControl bezogen. lParam muss zum Brechen ein long sein, sonst hauts nitt hin.
mfg
Hellsgore
Servus,
wenn du es ganz simpel haben willst:
this.Cursor = Cursors.WaitCursor;
System.Diagnostics.Process.Start("regedit.exe", @"/e D:\test.reg HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ACT");
this.Cursor = Cursors.Default;
mfg
Hellsgore
Etwa raff ichs nicht, oder ich werd hier echt verrückt. Jetzt setze ich den gleichen Code wieder ein, und auf einmal funktionierts. Es sind wirklich Exceptions aufgetreten.
Vielleicht habe ich zu vorher doch was verändert, oder die Heinzelmännchen haben mein Programm repariert . Auf alle Fälle funktionierts jetzt. Ich bedanke mich trotzdem für deine Hilfe Talla, es muss wohl was mit den Exceptions zutun gehabt habe. Als ich in der Fehlerbehandlung (catch routine) eine MessageBox einbaute, hats auf einmal funktioniert. Die Suche ist genau dort stehen geblieben wo mir die Dateien gefehlt haben.
Gruß
Markus Seidl
Ist leider etwas komplizierter als einfache Attribute zu setzen, du benötigst einen TypeConverter bzw. Editor dazu. Schau mal folgdnen Artikel an:
http://msdn.microsoft.com/msdnmag/issues/03/05/Design-TimeControls/default.aspx
idiot schrieb:
Hallo,
gut dann werd ich mich halt entschuldigen, will ja nicht den Ruf des Forums in den Dreck ziehen. Das war eher eine Kurzschlussreaktion, da ich momentan einfach nur mehr Fragen in der Art lese. War vielleicht etwas grob übertrieben ..
Da muss ich "idiot" allerdings beipflichten. Manchmal kommen schon recht seltsame Fragen, wo man sich fragt "Hat der überhaupt schonmal bei Google nachgeschaut?", weil manche Leute wirklich zu faul sind um selber zu suchen. Trotzdem ein bischen überreagiert "idiot" :).
Ansonsten wünsche ich dir noch viel Spaß auf c-plusplus.net "M.Buerckel"
Gruß
Markus Seidl