Laden...
S
Stu42 myCSharp.de - Member
Softwareentwickler Aus dem Norden Dabei seit 15.10.2006 506 Beiträge
Benutzerbeschreibung

Forenbeiträge von Stu42 Ingesamt 506 Beiträge

06.07.2007 - 09:14 Uhr

Hallo,

ich habe mir eben die PIA´s für office 2003 heruntern geladen , und installiert.

Die Dateien die angeblich installiert werden sollen, sind:

1 ADODB.dll
2 dao.dll
3 ipdmctrl.dll
4 Microsoft.mshtml.dll
5 Microsoft.Office.Interop.Access.dll
6 Microsoft.Office.Interop.Excel.dll
7 Microsoft.Office.Interop.FrontPage.dll
8 Microsoft.Office.Interop.FrontPageEditor.dll
9 Microsoft.Office.Interop.Graph.dll
10 Microsoft.Office.Interop.InfoPath.dll
11 Microsoft.Office.Interop.InfoPath.SemiTrust.dll
12 Microsoft.Office.Interop.InfoPath.Xml.dll
13 Microsoft.Office.Interop.MSProject.dll
14 Microsoft.Office.Interop.Outlook.dll
15 Microsoft.Office.Interop.OutlookViewCtl.dll
16 Microsoft.Office.Interop.Owc11.dll
17 Microsoft.Office.Interop.PowerPoint.dll
18 Microsoft.Office.Interop.Publisher.dll
19 Microsoft.Office.Interop.SmartTag.dll
20 Microsoft.Office.Interop.Visio.dll
21 Microsoft.Office.Interop.Visio.SaveAsWeb.dll
22 Microsoft.Office.Interop.VisOcx.dll
23 Microsoft.Office.Interop.Word.dll
24 Microsoft.Vbe.Interop.dll
25 Microsoft.Vbe.Interop.Forms.dll
26 mscomctl.dll
27 msdatasrc.dll
28 office.dll
29 stdole.dll

Aber bei mir werden nur folgende Datein installiert:

adodb.dll
Microsoft.sdtformat.dll
stdole.dll
Microsoft.mshtml.dll
msdadasrc.dll

Die anderen datein sind alle NICHT DA.

Ich möchte aber nur Excel automatieren, also brauche ich doch eingeltich nur das Microsoft.Office.Interop.Excel.dll Assembly oder?

Gruß Stu

05.07.2007 - 14:58 Uhr

Hallo,

Wenn bei meinem DirectX Fenster die Größe geändert wird, dann muss ich ja directX neu einstellen.

Das mache ich so:


        private void HandleResetEvent(object caller, EventArgs args)
        {
            m_Device.RenderState.FillMode = FillMode.Solid;

            m_Device.RenderState.Clipping = false;

            m_Device.RenderState.CullMode = Cull.None;

            m_Device.RenderState.ShadeMode = ShadeMode.Gouraud;


            m_Device.Lights[0].Type = LightType.Directional;
            m_Device.Lights[0].Diffuse = Color.White;
            m_Device.Lights[0].Direction = new Vector3(-0.5f, 0, -0.5f);
            m_Device.Lights[0].Enabled = true;

            m_Device.Lights[1].Type = LightType.Directional;
            m_Device.Lights[1].Diffuse = Color.White;
            m_Device.Lights[1].Direction = new Vector3(1, 1,1);
            m_Device.Lights[1].Enabled = true;

            CreateRes(); //Polygone neu errechnen
        }

Also beim "Resizen" wird der Handler aufgerufen.
Bei windows xp funktioniert alles, aber vista wird zwar "resized" , aber alle meine Polygone werden schwarz gezeichnet.

Hat jemand eine ahnung woran das liegen könnte?

Gruß Stu

03.07.2007 - 11:48 Uhr

Hallo,

also ich würde in meine Form gerne ein Excel Plugin einbauen. Also Praktische Excel als Control.

Hat jemand eine Ahnung wie man sowas macht?

Gruß Stu

30.06.2007 - 12:46 Uhr

wenn ich das aber rehct überlege, habe ich schon recht viel veratnwortung.

Ich arbeite ich einer kleinen Fima mit 5 Mitarbeitern. Und ich arbeite mehr oder weniger alleine an einer recht großen Stoftware.

Also das ist nicht so, das ich nach einem erstellten Konzept arbeite , sondern es heißt immer nur, "ja mach du mal". Die einzigen Vorgabe die habe, ist halt die funktionalität vom PRogramm selbst, wie ich das am besten umsetzen ( GUI etc...) ist mir selbst überlassen.

Und im verlgleich zu anderen die ich kenne, sind meine Programmierfähigkeite deutschlich besser. Und die leute aus meinem Jahrgang, die Studieren, sind weit aus weniger kompetent als ich.

29.06.2007 - 18:25 Uhr

also ich bin "Technischer Assisent für Informatik", mit Fachabi. Aber da ich keine lust auf das Studium habe, arbeite ich halt schon.

Was sind das für Microsof zertifikate? Ich meine Zertifikate sind zwar schön und gut, aber ich denke nicht, da es meine Fähigkeiten erweitern.

Und wie ist das eigentlich mit der Bezhalung? ich meine klar bekommt man mehr Geld wenn man älter wird und länger in eine Frima arbeitet, aber gibt es nicht eine qualifierung die einem halt mehr Geld bringt?

Wie ist das eigentlich mit sowas wie "Teamleiter" ? Muss man sich dafür ausbilden lassen?

29.06.2007 - 16:01 Uhr

Hallo,

seit letzen August arbeit ich als festangestellelter Softwareentwickler. Gibt es eigentlich weiterbildungen für Programmierer?

Wohin kann ein Programmierer aufsteigen?

Gruß Stu

14.06.2007 - 13:30 Uhr

ja die Thread funktion läuft aber durch. Das ist ja auch keine endlos funktion.

Und anhand der ausgabe sehe ich ja, das meine Thread alle beenden.

[Edit]

Ja mit Abort schließt das Programm richtig.

Wahrscheinlich wurde der Thread immer gehalten durch Suspend.

Danke

14.06.2007 - 13:26 Uhr

Hallo,

ich hab eine Button Animation gemacht, die einen Button langsam einblendet wenn die Maus drüber rollt, und wie ausblenden wenn die maus wegrollt.

Das mache ich mit Threads.

Der Code:


        protected override void OnMouseEnter(EventArgs e)
        {
            try
            {
                if (BlendOnThread != null)
                    if (BlendOnThread.IsAlive)
                        BlendOnThread.Suspend();
                if (BlendOffThread != null)
                    if (BlendOffThread.IsAlive)
                        BlendOffThread.Suspend();

                BlendOnThread = new System.Threading.Thread(new System.Threading.ThreadStart(BlendOn));
                BlendOnThread.Start();

            }
            catch (Exception)
            {
            }

        }
        protected override void  OnMouseLeave(EventArgs e)
        {
            try
            {
                if (BlendOffThread != null)
                    if (BlendOffThread.IsAlive)
                        BlendOffThread.Suspend();

                if (BlendOnThread != null)
                    if (BlendOnThread.IsAlive)
                        BlendOnThread.Suspend();

                BlendOffThread = new System.Threading.Thread(new System.Threading.ThreadStart(BlendOff));
                BlendOffThread.Start();
            }
            catch (Exception)
            {
            }
        }

Anhand der Programm ausgabe sehe ich auch, das meine Threads zuende laufen.
Aber wenn ich meine Form dann schließen will, geht die Hauptform zwar zu, das Programm wird aber nicht beendet.

Wenn die Maus mein COntrols verlässt, wärend es noch am einblenden ist, dann soll das einblenden ja auch gestoppt werden. Also möchte ich den Einblendethread beenden, was ich mit "BlendOnThread.Suspend();" mache. Aber da gibt mir der C# compiler auch warnings (könnte das etwas mit dem Fehler zutun haben?), das ich nen Syncronisationdings nehmen soll, also nen Mutex oder so.

Wird keine Threadfunktion aufgerufen, geht mein Programm wieder normal zu.

Also, was mache ich falsch, das mein Programm nicht komplett schließt?

Gruß Stu

13.06.2007 - 12:14 Uhr

hab schon gefunden.

Die Seite heißt pinvoke.net.

Die da angebe Funktion hab ich geändert, so das man sie einfacher benutzen kann.

Also wer nen Bitmap transparent zeichnen will:


public void TransparentBlt(Graphics g, Bitmap b, int x, int y, byte bAlpha)
        {
            IntPtr pTarget = g.GetHdc();
            IntPtr pSource = CreateCompatibleDC(pTarget);
            IntPtr pOrig = SelectObject(pSource, b.GetHbitmap(Color.Black));
            AlphaBlend(pTarget, 0, 0, b.Width, b.Height, pSource, 0, 0, b.Width, b.Height, new BLENDFUNCTION(AC_SRC_OVER, 0, bAlpha, AC_SRC_ALPHA));
            IntPtr pNew = SelectObject(pSource, pOrig);
            DeleteObject(pNew);
            DeleteDC(pSource);
            g.ReleaseHdc(pTarget);
        }

        [DllImport("gdi32.dll", EntryPoint = "GdiAlphaBlend")]
        public static extern bool AlphaBlend(IntPtr hdcDest, int nXOriginDest, int nYOriginDest,
           int nWidthDest, int nHeightDest,
           IntPtr hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc,
           BLENDFUNCTION blendFunction);


        [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
        static extern IntPtr CreateCompatibleDC(IntPtr hdc);

        [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
        static extern bool DeleteDC(IntPtr hdc);

        [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
        static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);

        [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)]
        static extern bool DeleteObject(IntPtr hObject);

        [StructLayout(LayoutKind.Sequential)]
        public struct BLENDFUNCTION
        {
            byte BlendOp;
            byte BlendFlags;
            byte SourceConstantAlpha;
            byte AlphaFormat;

            public BLENDFUNCTION(byte op, byte flags, byte alpha, byte format)
            {
                BlendOp = op;
                BlendFlags = flags;
                SourceConstantAlpha = alpha;
                AlphaFormat = format;
            }
        }

        const byte AC_SRC_OVER = 0x00;
        const byte AC_SRC_ALPHA = 0x01;

13.06.2007 - 11:41 Uhr

Hallo,

ich möchte ein Bild halbtransperent zeichnen.

Bei der Funktion DrawImage kann man ja kein Alpha angeben.

Gibt es eine Funktion der GDI die sowas kann?

Mit der API Funktion AlphaBlend kann man sowas machen, nur ist es recht blöde die einzubinden, weil sie nur einen DC Blitten kann.

[Edit]
Da es so eine Funktion bestimmt nicht geben wird, hab ich noch eine Kurze Frage. Es gibt so eine Seite, wo die ganzen API Funktionen aufgelistet sind, und wie man sie mit DLLImport in C# einbindet. Nur Leider hab ich den Link nicht mehr, neu finde kann ich sie auch nicht.
Weiß jemand welche seite ich meine, und dan den Link parat?

Gruß Stu

02.06.2007 - 18:40 Uhr

ja wenn man nen activx einbindet, dann erstellt doch das Visual studio nen wrapper für das activex.

Also den wrapper klasse für das active x

02.06.2007 - 16:05 Uhr

mir kommt gerade ne idee:

VS erstellt ja immer nen wrapper. Würed es gehen, wenn ich von dem Wrapper erbe, nud dann die WndProc überschreibe?

01.06.2007 - 11:10 Uhr

Hallo,

ich habe ein ActiveX, welches bei druck der rechten Maustaste ein Kontextmenü offnen.

Ich möchte aber nicht das diese Menü geöffnet wird. Also dachte ich mir, ich ignoriere einfach das Event.

Meine Theorie:

Wenn ich in der übergeordneten Form das event ignoriere , dann wird es auch nicht weiter zu dem ActiveX gesenden.

Mein Code:


protected override void WndProc(ref Message m)
        {
            if (m.Msg == 516) //rechte maustaste down
               return;

            base.WndProc(ref m);

            
        }

Nur funktioniert dieses nicht! Das event wird nur für die Form ignoriert. Das ActiveX bekommt aber dennoch das event zu gesenden.

Was muss ich also tun, um für ein object bestimmt nachrichten zu filtern?

Gruß Stu

31.05.2007 - 08:29 Uhr

ah , da stehts ja, über ne command pipline...

vielen dank für die antwort!

30.05.2007 - 19:23 Uhr

ja richtig, aber so wie ich das gesehen habe, kann man den Shockwave player einbinden, ist ja auch nur nen activ x.

Der player spielt dann die swf files ab. logisch. Aber ich müsste dann ja über den player auf die , in meinem file , deklarierten schnitstellen zugreifen

30.05.2007 - 14:09 Uhr

Hallo,

man kann ja Shockwave auch in .NET Programm einbinden. Das wird aber erst interessant, wenn man mit dem Shockwave objekt kommunizieren kann.

Kann man in Flashobjeken Schnittstellen einbauen, die man dann in C# aufrufen kann?

Damit das geht, müsste man nen Flashprojeckt ja als Dll übersetzen.

Hat jemand schon erfahrung in dem Gebiet?

Denn das war ja schon recht nett wenn das gehen würde. Dann könnte man sich ohne Probleme eine komplexe animierte GUI erstellen.

Gruß Stu

07.05.2007 - 16:07 Uhr

glaube du stellst dir das ein bischen zu einfach vor.

Das einzigste was wir dir sagen können, ist wie du nen Seriellen Port bedienen kannst.

Aber was du dem Geräte schicken musst, oder was es dir schickt, hängt ja einzig und alleine vom Gerät selbst ab.

D.h du braucht eine Protokoll/Schnittsellen beschreibung von dem gerät.

26.04.2007 - 12:08 Uhr

nein, die Controlgröße kannste für jedes Element einstellen.

26.04.2007 - 12:00 Uhr

Also wenn ich das richtige verstehe willst du verschien viele Textbboxen untereinander in ein Panel einfügen oder?

Dann nimm doch einfach nen FlowLayoutPanel. Das kann das von selbst, musst nur nen paar eigenschafen setzen wie:
FlowDIrection = FlowDirection.TopDown
Und WrapContent = false

Und dann einfach die dinger mti Controls.Add( new TextBox()) einfügen.

24.04.2007 - 11:42 Uhr

Hallo,

ich habe eine C# Dll, in der ich eine Funktion aufrufe, welche einen XMLSerialzer benutzt.

Bei der Initialiserung des XMLSerilizer in der DLL wird bei dem Aufrufenden Programm das AssemblyResolve Event ausgeführt, mit dem Assamblynamen: MeineDll.XmlSerilizers .

Genauer:
Das Event wird bei dem Aufruf ausgeführt:
XmlSerializer Serializer = new XmlSerializer(typeof(UserCtrl));

Das heißt doch das ein Assambly nicht geladen werden konnte , oder?

Das Programm läuft aber ganz normal weiter, und alles funktioniert. Wahrscheinlich wird es nach dem aufruf automatisch nachgeladen.

Da ich das AssemblyResolve-Event aber dazu benutze, um festzustellen welches Assambly nicht geladen wurde, ist diese aufruf für mich natürlich böse.

Ja wie gehe ich nun mit dem Fehler um? Und warum wird dieses Event denn überhaupt ausgelöst? Muss ich das Assably in dem Event-Handler nachladen?

Gruß Stu

23.04.2007 - 12:45 Uhr

mhh dann werd ich mir doch was ausdenken um den schlüssel zu generieren.

VIeleicht die Dateizugriffzeit oder so.

23.04.2007 - 12:36 Uhr

Hallo,

ich möchte eine Datei verschlüsselt schreiben und lesen. Dazu benutze ich einen FileStream, einen CryptoStream und einen StreamReader.

Das funktioniert auch alles ganz gut.

Meinen CryptoStream initialisiere ich ja mit meinen Schlüssel.
Und genau da liegt das Problem.

Denn wenn ich irgentwo in meinem Programm mir den Schlüssel generiere z.b. so:

byte[] key = new byte[] { 1, 2, 3,5, etc....};

dann ist das ja ziehmlich offensichtlich.

Denn den code kann man ja z.B. mittels dem "Reflector" anschauen, und somit den Schlüssel ablesen.

Nun könnte ich natürlich irgentwelche Operationen machen, um nun auch noch den Schlüssel zu codieren.

Aber letzendlich kann man es alles im Code ablesen, auch wenn es durch den Dotfuscator gejagt wurde

Also, wie macht man wo speichert man den schlüssel am besten?

Gruß Stu

20.04.2007 - 08:29 Uhr

ahja, das hab ich gesucht - danke!

19.04.2007 - 13:39 Uhr

Hallo,

das Visual Studio 2005 biete ja auch ein Setup an (Setup-projekt).
Weiß jemand wie man in dem Setup ein Dateityp mit einem Icon verknüpfen kann?

Gruß Stu

18.04.2007 - 12:25 Uhr

das hab ich gesucht. danke.

18.04.2007 - 12:03 Uhr

Hallo,

ich habe folgendes Problem:

Ich habe eine Form, in der ich eine ToolBarForm öffne. Diese ToolBarForm möchte ich aber immer über meinem Fenster sehen.

Wenn ich "TopMost = true" sage, dann ist die ToolBarForm ja auch über allen anderen Fenstern.

Gibt es ne möglich die form "nur" über einer bestimmt form anzuzeigen?

Gruß Stu

12.04.2007 - 15:39 Uhr

Du willst nen Kalender in einer ListView anzeigen lassen?

Glaube nicht das es so geht.

Aber alternative kannst du den Kalender über die ListView malen.

Aber vieleicht solltest du nen anderes Control nehmen, um deine Datan anzuzeigen.

Du könntest z.B. mit einem UserControl ein "Zeile" nach deinen vorstellungen erstellen, und sie dann mit nem FlowLayoutPanel zu einer liste verketten.

10.04.2007 - 16:19 Uhr

Hallo!

Ich habe folgendes Problem.

Ich möchte so eine dockbares ToolStrip haben, so wie in Paint. Also Ein Toolfenster, welches mal gedockt als ToolStrip - und mal ungedockt als ToolForm fungiert.

Geht das mit dem .NET Framework? Wenn ja wie?

Also wenn ich einen ToolStripContainer nehme, dann kann ich die einzelenen ToolStrips ja verschieben, aber leider nur innerhalb der Containerränder.

Gruß Stu

30.03.2007 - 14:24 Uhr

mhh das liegt nich daran.

Ich rufe in dem timer einen Delegaten auf.

Auf der Delegate ruft sich zwei mal auf.

Aber das Event wird nur einmal hinzugefügt.

30.03.2007 - 11:04 Uhr

ja das könnte hinkommen.

Muss dann mal nen Monitor einbauen.

30.03.2007 - 10:53 Uhr

hab ich als erstes auch gedacht, ist aber alles einmalig und richtig.

Komischerweise kommt der Merfachaufruf auch erst, wenn die Bedingung im timer erfüllt ist.

Sonst kommt er nur jede Sekunde.

Vom prinziep her, musst durch den "Stop" aufruf doch überhaupt kein aufruf mehr kommen.

30.03.2007 - 10:49 Uhr

Hallo,

ich habe folgendes Problem:

Ich habe einen timer, mit dem ich in Sekunden takt abfrage, ob eine bestimmt zeit verstichen ist. Wenn das der Fall ist, löse ich ein event aus.
Der code sieht wie folg aus:

        
void NextInjectionTimer(object sender, System.Timers.ElapsedEventArgs e)
        {
            if (StartInjection <= e.SignalTime)
            {
                InjectionTimer.Stop();
                NextInjection(); //startet unter anderen ein event
            }
        }

Aber komischer weiße, wird das Event 2 mal ausgeführt. Die Timer funktion wird aus irgenteinem , mir nicht erklärlichen Grund 2 mal ausgeführt!

Diverse "entprellungsversuche" sind schon gescheitert.

Aber wie kann es sein, das der Timer mehrmals hintereinander aufgerufen wird?

Gruß Stu

27.03.2007 - 10:05 Uhr

ja das programm soll man ja doppelt öffnen können.

Aber ich werde wohl die Regestrie beschreiben. Der Timer kann dann ja schauen, ob dort eine Flag gesetzt ist.

Den Timer starte ich dann, so wie ihr es gesagt habt, wenn die Form beendet ist.

27.03.2007 - 09:53 Uhr

ja das problem ist, in dem geräte ist eine UV-Lampe drin. Die sind teuer und haben eine begrenzte lebensdauert. Zu oft darf man sie aber auch nicht ein und ausschalten.

Aber wenn nach 10 min das Programm wieder gestartet wird, darf der TImer das geräte nicht abschalten.

D.h der Timer muss auch schauen wer zugriff auch das Gerät hat.

vieleicht ist da doch das externe programm besser.

27.03.2007 - 09:30 Uhr

ja ich brauche nen 15 min timer, der geräte nach beendigung des Programmes abschaltet.

Das mit der unsichtbaren form finde ich von der Struktur her nicht so toll, diese kleine sache an einer so "großen" stelle unterbringen.

Das externe programm muss dann ja auch abfragen, wenn meine form geschlossen ist.

Ich werd dann doch wohl den CreateThread nehmen müssen.

27.03.2007 - 08:42 Uhr

Hallo,

gibt es in C# einen Timer oder ein Thread, der nach beendigung des Programmes noch lebt?
Oder muss man CreateThread aus der api hohlen?

Gruß Stu

22.03.2007 - 15:33 Uhr

Hallo,

wie heißt die eigenschaft, die mir anzeigt, ob eine Form angezeigt wird?
Ich hätte auf IsShown getippt, aber das gibst nicht.

Visible gibt ja nur an, ob eine Form generell gezeigt wird oder?

Gruß Stu

16.03.2007 - 13:24 Uhr

Hallo,

ich habe eine C Funktion , die in etwa so aussieht:

bool Funktion( MyStruct * p, long * l);

das Struct ist folgend definiert:


struct MyStruct
{
       float   a[2048];
      float   b[2048];
      float   c[2048];
};

Nun will ich diese Funktion importieren, also mache ich mir nen Struct in C#:


public unsafe struct MyStruct
{
      public  fixed  float   a[2048];
      public  fixed float   b[2048];
      public  fixed float   c[2048];
};

DAnn der Importbefehl:

[DllImport("mydll.dll", CharSet = CharSet.Ansi)]
public static extern short Funktion([MarshalAs(UnmanagedType.Struct)] MyStruct lpDest, ref long lpData);

Beim ausführn bekomme ich dann folgenden Fehler:
Interne Einschränkung: Die Methodensignatur ist zu komplex oder zu groß.

Frage:

Ist die Funktion so richtig importiert?
Kann ich das Problem umgehen, in dem ich die Arrays nicht als struct, sondern einzelt übergebe?

Gruß Stu

12.03.2007 - 11:03 Uhr

sAttach ist ja Lokal... Deklarier die Variable einfach in der Klasse.

12.03.2007 - 10:59 Uhr

ja normal braucht man auch nur dir Runtime.

Sicher das das Framework richtig insalliert ist? Hast du es mal neu installiert?

Bist du dir sicher, das bei der Runtime die Einstellung (in der Verwaltung) vorhanden ist?

Ansonsten wüsste ich auch nicht weiter.

12.03.2007 - 10:39 Uhr

bei mir zeigt die Verknüpfung da auf:

"C:\Programme\Microsoft Visual Studio 8\SDK\v2.0\Bin\mscorcfg.msc"

du kannst alternative auch : Start->Ausführen->mscorcfg.msc machen.

Gruß Stu

09.03.2007 - 10:30 Uhr

ja wie Schaltest du denn die Sprache in Form1?
Mach es dann genau so in Form2.

08.03.2007 - 11:38 Uhr

mhhh mhh.

Also OnSize wird doch aufgerufe, wenn schon resized wurde. Also du musst eigentlich vorher resizen.

Haste es mal mit MoveWindow probiert?


void MoveWindow(
   int x,
   int y,
   int nWidth,
   int nHeight,
   BOOL bRepaint = TRUE 
);

EDIT:

Resizen tust du eigentlich da, wo du auch dein AX erstellst. Also in der Form oder so.

08.03.2007 - 11:15 Uhr

hast du "Application.EnableVisualStyles();" an?

Oder haste das vieleicht gelöscht?

Haste nen Rebuild versucht?

08.03.2007 - 10:28 Uhr

if (dlg.ShowDialog(this) == DialogResult.OK)
{

}

08.03.2007 - 10:13 Uhr

Kannste da im hintergrund kein FlowLayoutPanel einbauen, die Scrollbars ausblenden , und per Funktion scrollen?

Also bei dem manuellen Scrollen könntst du das so machen, dass du immer eine feste anzahl an Zeilen in das Controls einbaust. Und dann per Index scrollst.

D.h du zeichnest dann z.B. immer von 1 bis 20, dann von 2-21, von 3-22 usw...

Verstehst was ich meine?

08.03.2007 - 10:04 Uhr

nur 20 Items?

Was willst du da den für Items einfügen? Controls? oder Irgentwelche Werte wie z.B. Strings?

08.03.2007 - 10:00 Uhr

probier es mal mit dem FlowLayoutPanel, das kann das von Selbst.

Wie man Scrollt?

Die Y Position der Items verändern. 🙂

08.03.2007 - 09:51 Uhr

ja das ist nur nen Tippfehler.... im Code ist das schon richtig.

Das ist ja auch nur eine Warung. Sonst wär es ja nen Fehler.

Ja ist von der Form abgeleitet.

08.03.2007 - 09:46 Uhr

Hallo,

ich habe eine MDIForm. Wenn ich nun auf ein MDI-CHild klicke, möchte ich bestimmte Aktionen durchführen. Also hänge ich mich an das "MDIChildActivated" Event.

In dem Eventhandler frage ich dann ab:

if (ActiveMdiChild is FormTypXYZ)...

Das hat bis jetzt immer gut geklappt. Doch nun will ich auch einen 2ten Typ abfragen:

if (ActiveMdiChild is FormTypX)
{
}
else if( (ActiveMdiChild is FormTypY)
{
}

Und da bekomme ich vom Compiler folgende Warnung:
Der angegebene Ausdruck ist nie vom bereitgestellten ("MyApp.FormTypY") Typ.
Aber das ist Quatsch! denn ich hab mir den Typ mal ausgeben lassen als MessageBox, und der Typ war an der stelle MyApp.FormTypY.

Jemand eine AHnung wie ich das Problem Löse? Oder was mache ich falsch?

Gruß Stu