Laden...

Forenbeiträge von Xqgene Ingesamt 2.051 Beiträge

16.08.2006 - 09:35 Uhr

wie wärs mit zwei splitcontainer, wobei der zweite in dem ersten liegt?

16.08.2006 - 09:24 Uhr

@dass: DataGridView != DataGrid !!!

@MarkusPehn: die einfachste möglichkeit ist wohl, in DataGrid.Paint die entsprechenden zellen selbst zu zeichnen

16.08.2006 - 08:55 Uhr

doch das geht. du muss bloß bedenken, dass wenn ein fenster unter deiner zeichnung aktualisiert wird, wird deine zeichung an der stelle "gelöscht" wird. so muss du deine zeichung regelmäßig aktualisieren.

das bsp. unten zeichnet in einer schleife ein rotes Rechteck auf desktop:

using System;
using System.Drawing;
using System.Runtime.InteropServices;

class Program
{
    static void Main(string[] args)
    {
        IntPtr hdc = GetDC(IntPtr.Zero);

        Graphics g = Graphics.FromHdc(hdc);
        while (!Console.KeyAvailable)
        {
            g.FillRectangle(Brushes.Red, new Rectangle(100, 100, 200, 200));
            System.Threading.Thread.Sleep(50);
        }
        g.Dispose();

        ReleaseDC(IntPtr.Zero, hdc);
    }

    [DllImport("user32.dll")]
    static extern IntPtr GetDC(IntPtr hwnd);

    [DllImport("user32.dll")]
    static extern int ReleaseDC(IntPtr hwnd, IntPtr hdc);
}

16.08.2006 - 08:31 Uhr

wie gesagt mit gdi, also winapi. mit GetDC(0) holst du den device context des desktops. mit Graphics.FromHdc() erstellst du ein Graphics-Object mit dem du dann zeichnen kannst.

16.08.2006 - 08:14 Uhr

vorschlag: dein fenter bleibt weiterhin trasparent und du zeichnest dein zeug direkt auf desktop (mittels GDI).

wozu brauchst du eigentlich überhaupt ein fenster?

15.08.2006 - 14:16 Uhr

Dem Bild nach, welches du angehängt hast, dachte ich, dass du das Output-Fenster mit dem "Error List"-Fenster verwechselst. Deshalb habe ich noch mal darauf hingewiesen. Mehr wollte ich damit nicht bezwecken.

15.08.2006 - 14:01 Uhr

Ich mach immer eine neue Datei dafür. In die Datei kommt dann die Definition für Delegate und EventArs-Klasse rein

15.08.2006 - 13:58 Uhr

S. Bild

15.08.2006 - 13:40 Uhr

Original von Pedro_15...
Jetzt habe ich gelesen, das Events eigentlich zwei Parameter (object source, EventArgs args) haben. So das alle Events den selben aufbau haben.

es ist zwar bei .NET so üblich, aber nicht zwingend. du kannst events mit drei oder 20 parametern bauen mit einem rükgabewert, oder ohne, etc.

using System;

class Program
{
    static void Main(string[] args)
    {
        Class c = new Class();
        c.Upssss += new DelegateMitDreiParameterUndReturn(OnUpssss);

        c.Fire();

        Console.Read();
    }

    static string OnUpssss(int i, string s, bool b)
    {
        return string.Format("{0} {1} {2}", i, s, b);
    }
}

delegate string DelegateMitDreiParameterUndReturn(int i, string s, bool b);

class Class
{
    public event DelegateMitDreiParameterUndReturn Upssss;
    public void Fire()
    {
        if (Upssss != null)
            Console.WriteLine(Upssss(10, "Test", false));
    }
}

15.08.2006 - 10:47 Uhr

Express Editions kann man nicht durch Add-Ins erweitern. aber wenn du zum Thema Installer unter "Infrastruktur" suchst, findest du anze Menge Tipps und Vorschläge dazu.

15.08.2006 - 10:41 Uhr

@Stube: übersehe ich was, oder steht es wirklich irgendwo, dass es sich um ASP handelt?

@Maddinel: wenn es doch nicht asp ist ==> selbst zeichnen

15.08.2006 - 10:31 Uhr

Kleiner Tipp:

Standardmäßig werden die letzten 50 Anmeldungen angezeigt. Um Alle Mitglieder anzuzeigen, klickt man auf "Show rest of members" unten in der Liste der Users. S. Bild.

15.08.2006 - 08:45 Uhr

Original von Noodles
Die steht im **Output **vom VS.

11.08.2006 - 15:14 Uhr

...The last number, 2, indicates the revision of the build...

das erklärt natürlich einiges.

wobei die Wikipedia Versionierung mir persönlich besser gefällt 🙂

11.08.2006 - 14:42 Uhr

Original von herbivore
Hallo Xqgene,

die Nummern sind nach dem Umfang der Änderungen streng monoton fallend geordnet:

Hauptversionsnummer = alles neu
Nebenversionsnummer = neue Features inkl. Fehlerbehebungen
Revisionsnummer = nur Fehlerbehebungen
Buildnummer = ggf gar nichts neu, sondern einfach nur neu übersetzt

Die andere Interpretation wäre: die Nummern sind danach, wie häufig sie sich ändern streng monoton steigend geordnet.

herbivore

genau deshalb wundert es mich, dass in MS .net-Version die Buildnummer vor der Revisionsnummer steht.

11.08.2006 - 09:23 Uhr

Wikipedia schrieb:

Eine Versionsnummer setzt sich häufig wie folgt zusammen:

                                 **:::{style="color: darkred;"}Hauptversionsnummer){darkred}.:::{style="color: darkblue;"}Nebenversionsnummer){darkblue}.:::{style="color: green;"}Revisionsnummer){green}-:::{style="color: gray;"}Buildnummer ){gray}**

nun ich habe mich schon immer gfragt, warum in .net die Revisionsnummer an letzter Stelle steht?

**Hauptversionsnummer.Nebenversionsnummer.Buildnummer.Revisionsnummer **
10.08.2006 - 16:50 Uhr

Original von herbivore
Hallo Stube,

du solltest erstmal ein Buch lesen. Ist ein gut und ernst gemeinter Rat. Zumal du das Forum heute schon gut beschäftigt hast.

herbivore

dem schließe ich mich an. und möchte dich außerdem auf die Forumsuche aufmerksam machen. du wirst überrascht sein, was alles bereits hier gepostet wurde. auch zum Taschenrechner.

10.08.2006 - 16:44 Uhr
10.08.2006 - 16:05 Uhr

ich kenne den Fehelr aus der AddIn Programmierung. Ich nenne die DLL einfach um, und dann geht es wieder. Irgendwann spähter wird diese umbennante dll gelöscht.

10.08.2006 - 12:56 Uhr

2002 setzt noch auf das .NET Framework 1.0 und dort sind einige Komponente nicht drin, die in .NET 1.1 (VS2003) oder 2.0 (VS2005) vorhanden sind.

du kannst aber mit WinApi die fehlende Funktionalität nachbilden: http://www.pinvoke.net/default.aspx/shell32/SHBrowseForFolder.html

10.08.2006 - 12:48 Uhr

gibt es denn nicht genug beispiele in dem link?

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin2\subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>
10.08.2006 - 12:42 Uhr

er kennt diese Komponente einfach nicht

was heiß das genasu? fehlermeldung bitte.

einizes was mir noch jetzt in Sinn kommt, dass du nich VS2003 sondern VS.NET (2002) hast.

10.08.2006 - 11:55 Uhr

Hi,

schon was von Configuration Files gehört? 😉

guckt dort mal speziell das <configuration> Element und dann "Runtime Settings Schema"

10.08.2006 - 11:41 Uhr

Original von Schimki86
...Aber eine Folder Browser-Komponente wie in VC# 2005 habe ich nicht finden können

die Komponente gibt es bei VS2003 auch und heißt FolderBrowserDialog.

und wenn du diese doch nicht findest, dann schreibe den Code doch selbst.


FolderBrowserDialog dlg = new FolderBrowserDialog();
if (dlg.ShowDialog() == ....

10.08.2006 - 10:54 Uhr

wenn ich dich jetzt richtig verstanden habe, du willst auf ein button klicken dann öffnet sich ein Fenster, wo man ein Wert auswählen kann ==> UITypeEditor-Klasse

oder als Combobox ==> Suche im Forum nach GetStandardValues

10.08.2006 - 10:29 Uhr

zu 1. diese Komponenten gibt es bei VS2003 auch. Nur nicht standardmäßig in der ToolBox. also muss du diese selbst einfügen. Einfach mit rechter Maustaste auf die ToolBox klicken und dann Item einfügen o.ä.

zu 2. im Internet, in einer Bücherei, bei Amazon, in der Schule,... ???

10.08.2006 - 10:11 Uhr

erweitere deine Stringklasse um TypeConverter(typeof(ExpandableObjectConverter)) Attribut. damit kann man die Klasse im PropertyGrid aufklappen und einzelne Eigenachaften editieren.

und füge noch zu deiner Property in dem UserControl das DesignerSerializationVisibility(DesignerSerializationVisibility.Content) Attribut damit die vom Designer editierte Werte auch im Source abgelegt werden.

Beispiel:

    public partial class UserControl1 : UserControl
    {
        private Stringklasse strClass;

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Stringklasse StrClass
        {
            get { return strClass; }
        }

        public UserControl1()
        {
            strClass = new Stringklasse();  // NICHT VERGESSEN ZU ERZEUGEN :)
            InitializeComponent();
        }
    }
    [Serializable, TypeConverter(typeof(ExpandableObjectConverter))]
    public class Stringklasse
    {
        private string myVar1;

        public string MyProperty1
        {
            get { return myVar1; }
            set { myVar1 = value; }
        }
        private string myVar2;

        public string MyProperty2
        {
            get { return myVar2; }
            set { myVar2 = value; }
        }
    }

10.08.2006 - 09:22 Uhr

du gehst die Sache etwas falsch an. überschreibe die Funktionen GetFormattedValue() und ParseFormattedValue(). die erste soll aus deinem Enum ein String erzeugen und zurück geben. die zweite umgekehrt aus einem String ein Enum.

09.08.2006 - 16:53 Uhr

also, das muss du dir schon einen eigenen designer schreiben.
ein gutes bsp. wäre da - der SplitContainer Control.

09.08.2006 - 13:05 Uhr

ich verstehe erlich gesagt nicht mehr, was die sache ist. wenn form verschoben ist, wird sie geleert. ist doch das was du wolltest. oder nicht?

das zweite geht, denk ich, auch, wenn du WinProc überschreibst.

09.08.2006 - 12:47 Uhr

hast du denn meinen Link nicht angeguckt?

09.08.2006 - 12:33 Uhr

Programm verankern wenn es sich wirklich wie taskbar verhalten soll

08.08.2006 - 12:54 Uhr

die Methode ist aus irgendeinem Grund mit Attributen Browsable(false) und EditorBrowsable(EditorBrowsableState.Never) markiert. So wird die nicht durch Intellisense angezeigt. Verwenden kannst du diese aber weiterhin. du hast bestimmt einen Schreibfehler drin. Kopiere am einfachsten den Methodennamen aus der Hilfe.

08.08.2006 - 09:40 Uhr

Original von liberado
im Visual Studio 2005 gibt es ein Toolbaustein der aussieht wie ein Telefon...

hat er auch einen namen?

08.08.2006 - 09:36 Uhr

wenn das so ist, wie herbivore schreibt, dann könnte man im LocationChanged das Gezeichnete wieder löschen

        private void Form1_LocationChanged(object sender, EventArgs e)
        {
            using (Graphics g = CreateGraphics())
            {
                g.Clear(this.BackColor);
            }
        }

08.08.2006 - 08:50 Uhr

Was hat das bitte schön mit GUI-Technologien zu tun????? Verschoben.

07.08.2006 - 17:38 Uhr

schau dir mal Microsoft.CSharp-Namespace an

[EDIT] 8o zu späht 🙂 [/EDIT]

07.08.2006 - 16:35 Uhr

Original von Peter Bucher
Ich weiss nicht ob man da vielleicht mit Generics was machen könnte...

public static T iif<T>(bool condition, T value1, T value2) {
            if(condition) {
                return value1;
            } else {
                return value2;
            }
        } 
04.08.2006 - 11:47 Uhr

gucke doch mal die Methoden von ToolStripItemCollection in der Doku genau an.

04.08.2006 - 10:16 Uhr

ah ja...warum man KeyPreview = true braucht habe ich auch nicht ganz verstanden? geht auch ohne.

04.08.2006 - 10:09 Uhr

@nic4x4

ich würde deine InputBox noch um ein paar statische Methoden erweitern. dan würde es etwa so aussehen:

public partial class InputBox : Form
{
        private InputBox(string caption, string description, string defaultValue)
        {
            InitializeComponent();

            this.Text = caption;
            this.lblDescription.Text = description;
            this.txtInput.Text = defaultValue;
        }

        public static DialogResult ShowDialog(ref string inputValue)
        {
            return ShowDialog("Geben Sie hier einen Wert ein:", ref inputValue);
        }

        public static DialogResult ShowDialog(string description, ref string inputValue)
        {
            return ShowDialog(Application.ProductName, description, ref inputValue);
        }

        public static DialogResult ShowDialog(string caption, string description, ref string inputValue)
        {
            DialogResult res;

            using (InputBox frm = new InputBox(caption, description, inputValue))
            {
                res = frm.ShowDialog();
                if (res == DialogResult.OK)
                    inputValue = frm.txtInput.Text;
            }

            return res;
        }
}

und aufgerufen kann es dan z.b. so:

private void button1_Click(object sender, EventArgs e)
{
            string value = "Ein Wert";
            if (InputBox.ShowDialog(ref value) == DialogResult.OK) 
                MessageBox.Show(value);
}

so ähnlich wird es in Delphi oder auch VB gemacht. und ich finde es ist besser so für so eine einfache aufgabe.

04.08.2006 - 09:21 Uhr

hm...überprüfen kann ich das nicht, da in meiner Umgebung keine Win2k mehr gibt 8)

aber ich glaube, das kann unser Freund Jrotten auch selbst mal testen.

04.08.2006 - 09:17 Uhr

genau das meine ich. und zwar bevor die MessageBox angezeigt wird 🙂

04.08.2006 - 09:12 Uhr

laut der Doku soll gehen:

Platforms

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

04.08.2006 - 09:05 Uhr

oder du installiert SP4 für Windows 2000

04.08.2006 - 09:03 Uhr

du als ehemaliger Admin weiß doch ganz bestimmt, wie man Windows XP installiert?! 😁

aber im ernst jetzt, ich glaube bei codeproject mal eine selbstgebastelte ListView gesehen zu haben, die auch Groups unterstützt, ob die bei Win2000 auch funktioniert weiß ich allerdings nicht.

04.08.2006 - 08:27 Uhr

hallo kowdie,

ich denk mal, das bevor du dein Chat programmierst 😉 solltest du etwas über C# lesen. Das wäre ein guter Anfang: C#

03.08.2006 - 22:15 Uhr

zeig doch mal etwas code, sonst kann ich noch lange raten, wo das problem bei dir liegt...

03.08.2006 - 19:56 Uhr

dann caste es zu dem control, was du brauchst..