Laden...
T
TigerCrow
myCSharp.de - Member
23
Themen
86
Beiträge
Letzte Aktivität
vor 2 Jahren
Dabei seit
24.01.2017
Alter
63
Erstellt vor 2 Jahren

Hallo zusammen 🙂

Stehe auf dem Schlauch und wollte euch mal fragen wie man es am besten machen kann.

Möchte ein Quiz erstellen wobei die Fragen und Antworten aus der Datenbank kommen.
Es gibt zu jedem Thema z.B. CSS mehrere Fragen und diese haben bis zu 6 Antwortmöglichkeiten

Wie würdet Ihr das Layouten?

Hatte gedacht für jede Frage je ein Panel aber das können ja unendliche werden 🙁
oder sollte man ein Panel nehmen und das jedesmal wieder lerren und neu machen? Also die Controls auf dem Panel

Stehe da voll gegen die Wand gerade!

Wäre für jede Idee dankbar.

Lieben Gruß
TigerCrow

Erstellt vor 4 Jahren

Es ist schon etwas her 😦

Habe für Dein Problem dies im Netz gefunden:



using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Collections.Generic;
using System.IO;

public class AnimatedGif {
  private List<AnimatedGifFrame> mImages = new List<AnimatedGifFrame>();
  PropertyItem mTimes;
  public AnimatedGif(string path) {
    Image img = Image.FromFile(path);
    int frames = img.GetFrameCount(FrameDimension.Time);
    if (frames <= 1) throw new ArgumentException("Image not animated");
    byte[] times = img.GetPropertyItem(0x5100).Value;
    int frame = 0;
    for (; ; ) {
      int dur = BitConverter.ToInt32(times, 4 * frame);
      mImages.Add(new AnimatedGifFrame(new Bitmap(img), dur));
      if (++frame >= frames) break;
      img.SelectActiveFrame(FrameDimension.Time, frame);
    }
    img.Dispose();
  }
  public List<AnimatedGifFrame> Images { get { return mImages; } }
}

public class AnimatedGifFrame {
  private int mDuration;
  private Image mImage;
  internal AnimatedGifFrame(Image img, int duration) {
    mImage = img; mDuration = duration;
  }
  public Image Image { get { return mImage; } }
  public int Duration { get { return mDuration; } }
}


Vielleicht ist das auch was für andere die sowas suchen

Lieben Gruß
TigerCrow

Erstellt vor 4 Jahren

Ich hab mich vor langem mal an so wiederverwertbaren Forms versucht - unds dann gelassen.

Wenn du das Form in ein anderes Projekt einbindest - kannst du dann dort im Designer Controls hinzufügen? Das war bei mir damals problematisch.

Ja das kann ich 😃 mich stören halt nur die Schlösser im neuen Projekt
und was die Schlösser bedeuten is mir auch klar 😉
Sorry, Rezise war schriebfehler ...

Vielleicht finde ich ja irgendwann was im Netz 😉 oder aus zufall finde ich was 😃

Auf jedenfall funktioniert es 😃 bis jetzt

Lieben Gruß
TigerCrow

Erstellt vor 4 Jahren

Jetzt habe ich noch eine Frage, habe gesucht aber leider nichts gefunden 😦

Wenn ich jetzt dieses Formular in andere Projekte einsetze habe ich an meinen Controls ein Schloss.
Gibt es eine Möglichkeit das man das Schloss ausblendet?
Oder anders gefragt, wie ist es möglich das man in anderen Projekten die controls nicht anwählen kann ?

Siehe Anhang dann weißt Du was ich meine

Lieben Gruß
TigerCrow

Erstellt vor 4 Jahren

Danke Th69

hat alles geklappt 😃

Warum hast du die Basisform nicht mit dem Designer erstellt (denn der erzeugt doch den richtigen Code)?

Hatte ich zuerst, nur da es nicht ging habe ich es mit der Klasse gemacht. Jetzt geht es aber in beiden Versionen 😃

Danke nochmals, war gestern blind 😦

Erstellt vor 4 Jahren

Habe jetzt dieses noch hinzugefügt und es geht 😃

Aber ist das auch richtig?


 protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            InitializeComponent();
        }

Lieben Gruß

Erstellt vor 4 Jahren

Habe ich manuell erstellt

wenn ich diese methode einfüge macht er es im aktuellen projekt


protected override void OnActivated(EventArgs e)
        {
            base.OnActivated(e);
            InitializeComponent();
        }

Ist die eventuell falsch ?

aber im neuen projekt bekommen ich eine normale form, nur beim starten habe ich das neue 😦

Erstellt vor 4 Jahren

Jetzt habe ich aber doch noch eine Frage ... SORRY

im Designer sieht mein Formular so aus, siehe Anhang

Aber wenn ich das Starte ist es leer 8o

Was feht da?

Habe versucht das auf public zu setzten bringt nix ... protected override void geht nicht

Wie bekomme ich jetzt die Picturebox und den label ins form wenn ich das form starte?

Erstellt vor 4 Jahren

Hallo Zusammen,

Ich hoffe das ich hier richtig bin 😃

Zum Thema:

Ich möchte gerne eine eigene Formklasse erstellen und dieses Form auch später für andere Projekte verwenden.

Meine Klasse sieht derzeit so aus, sie ist ganz einfach also nix komplexes, denke ich 😉


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FormModern
{
    class Modern : Form
    {
        private Label Header;
        private PictureBox Rezise;

        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Modern));
            this.Rezise = new System.Windows.Forms.PictureBox();
            this.Header = new System.Windows.Forms.Label();
            ((System.ComponentModel.ISupportInitialize)(this.Rezise)).BeginInit();
            this.SuspendLayout();
            // 
            // Rezise
            // 
            this.Rezise.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            this.Rezise.BackColor = System.Drawing.Color.Transparent;
            this.Rezise.Cursor = System.Windows.Forms.Cursors.SizeNWSE;
            this.Rezise.Image = ((System.Drawing.Image)(resources.GetObject("Rezise.Image")));
            this.Rezise.Location = new System.Drawing.Point(461, 309);
            this.Rezise.Name = "Rezise";
            this.Rezise.Size = new System.Drawing.Size(20, 20);
            this.Rezise.TabIndex = 1;
            this.Rezise.TabStop = false;
            // 
            // Header
            // 
            this.Header.BackColor = System.Drawing.SystemColors.ActiveCaption;
            this.Header.Dock = System.Windows.Forms.DockStyle.Top;
            this.Header.Font = new System.Drawing.Font("Verdana", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.Header.Location = new System.Drawing.Point(0, 0);
            this.Header.Name = "Header";
            this.Header.Size = new System.Drawing.Size(481, 42);
            this.Header.TabIndex = 2;
            this.Header.Text = "Form";
            this.Header.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
            // 
            // Modern
            // 
            this.ClientSize = new System.Drawing.Size(481, 329);
            this.Controls.Add(this.Header);
            this.Controls.Add(this.Rezise);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.Name = "Modern";
            ((System.ComponentModel.ISupportInitialize)(this.Rezise)).EndInit();
            this.ResumeLayout(false);

        }
    }
}

Wie kann ich das jetzt machen oder muss ich was bestimmtest beachten?

Dachte ja das ich das Kompiliere als dll ,einbinde die dll im neuen project dann einfach mit:


class Form1 : Modern

einbinde 😃 Nur tut das nicht

Haffo ich habe mich verständlich ausgedrückt

Lieben Gruß
TigerCrow