Laden...
C
CoLo
myCSharp.de - Member
17
Themen
228
Beiträge
Letzte Aktivität
vor 4 Monaten
Dabei seit
25.09.2009
Erstellt vor 7 Monaten

Zum Thema Standardverzeichnis:
Kannst Du auf Deinem PC herausfinden, in welchem Ordner die Datei wie z.B. DSC12345.jpg liegt?

Erstellt vor 7 Monaten

In Deinem Bild hast Du ein 
underlyingDataObject vom Typ 
System.Windows.Forms.DataObject.

So wie es aussieht, kannst Du über dessen GetImage an das Image = Bitmap herankommen.

DataObject.GetImage Methode (System.Windows.Forms)

und dann

Bitmap bitmap = new Bitmap(image);
Erstellt vor 8 Monaten

Vielleicht sowas in der Art? Ist ungetestet.

        public class Kiste
        {
            public string Bezeichnung { get; set; }
            public int Laenge { get; private set; }
            public int Breite { get; private set; }
            public int Hoehe { get; private set; }
            public int Volumen { get {return Laenge * Breite * Hoehe;}}
            

            public Kiste(int Laenge, int Hoehe, int Breite)
            { 
                this.Laenge = Laenge;                
                this.Breite = Breite;
                this.Hoehe = Hoehe;
            }

            public void Ausgabe()
            {
                Console.WriteLine("Maße von {0}", this.Bezeichnung); //Überschrift
                Console.WriteLine("\tLänge:\tBreite:\tHöhe:\tVolumen:"); //ein Versuch soetwas wie eine Tabelle zu basteln
                Console.WriteLine(
                    "\t{0}\t{1}\t{2}\t{3}",
                    this.Laenge, this.Breite, this.Hoehe, this.Volumen
                );
            }
        }


        static void LagerraumFuellen(Kiste[] lagerraum)
        {
            {
                var kiste = new Kiste(5, 3, 3);
                kiste.Bezeichnung = "Bierkasten";
                lagerraum[4] = kiste;
            }
            {
                var kiste = new Kiste(4, 7, 8);
                kiste.Bezeichnung = "Tupperdose";
                lagerraum[11] = kiste;
            }
        }

        static void Ausgabe(Kiste kiste)
        {
            if (kiste == null)
            {
                Console.WriteLine("\tKeine Kiste vorhanden.");
                return;
            }
            else
            {
                kiste.Ausgabe();
            }
            Console.ReadLine();
        }

        static void Main()
        {
            Kiste[] lagerraum = new Kiste[75];
            LagerraumFuellen(lagerraum);
                        

            char eingabe = '4';
            switch (eingabe) 
            {
                case '4':
                    Kiste kiste = lagerraum[4];
                    Ausgabe(kiste);
                    break;

                default: break;
            }

        }
Erstellt vor 10 Monaten

Nativ sollte das mit einem RecyclerView gar keine Probleme bereiten. Es kann tausend Datensätze problemlos anzeigen.

Hierzu habe ich folgenden Link gefunden:
https://github.com/dotnet/maui/issues/21554

Zitate:

(...) CollectionView seems to be really struggling on Android, especially when you scroll through the items quickly. #21554 (...)

(...) Potential solution: GO NATIVE
After digging for hours through recorded scopes and trying to optimize the layout of item templates I found out that the only solution was to write the layout natively. I translated the real-world-complex from XAML to android XML. I setup the RecyclerView to use my layout and bind my collection of items through the adapter. (...)

Vielleicht hilft diese Information

Erstellt vor 5 Jahren

Gehe nicht davon aus, dass listView1.SelectedItems[0] existiert.
Wenn Du nichts auswählst, dürfe spätestens dann listView1.SelectedItems.Count == 0 sein und listView1.SelectedItems[0] würde dann nicht existieren --> Index out of Range.

Erstellt vor 5 Jahren

oder


SomeClass someObject = obj as SomeClass;
if (someObject != null)
{
  //Cast erfolgreich
   ...
}

Erstellt vor 5 Jahren

Ich stimme P!lle bei.

#nullable liest sich für mich auf dem ersten Blick als #nullableValuesAreNowAllowed und nicht als
#nullableExplicit oder #nullableReferenceTypes.

Die Benennung #nullableExplicit oder #nullableReferenceTypes hätte ich wesentlich besser empfunden.

Erstellt vor 5 Jahren

Mein erster Gedanke war:



    public partial class Form1 : Form
    {
        //Dem Form1 noch folgendes hinzufügen:
        //
        // * TextBox mit Namen textBoxEingabe
        // * TextBox mit Namen textBoxAusgabe
        // * Ereignis Form1_Load
        // * Ereignis textBox1_TextChanged

        public Form1()
        {
            InitializeComponent();
        }

        List<Kombi> _kombis;
        private void Form1_Load(object sender, EventArgs e)
        {
            _kombis = new List<Kombi>();

            _kombis.Add(Kombi.GetKombi("Dreier", "1|1|2"));
            _kombis.Add(Kombi.GetKombi("Dreier", "2|4|6"));
            _kombis.Add(Kombi.GetKombi("Dreier", "3|7|8"));
            _kombis.Add(Kombi.GetKombi("Dreier", "4|10|12"));
            _kombis.Add(Kombi.GetKombi("Dreier", "5|7|1"));
            _kombis.Add(Kombi.GetKombi("Dreier", "6|4|10"));

            _kombis.Add(Kombi.GetKombi("Vierer", "7|1|2|7"));
            _kombis.Add(Kombi.GetKombi("Vierer", "8|4|6|10"));
            _kombis.Add(Kombi.GetKombi("Vierer", "9|7|8|1"));
            _kombis.Add(Kombi.GetKombi("Vierer", "10|10|12|4"));

            _kombis.Add(Kombi.GetKombi("Vierer Würfel", "11|1|10|11"));
            _kombis.Add(Kombi.GetKombi("Vierer Würfel", "12|1|4|5"));
            _kombis.Add(Kombi.GetKombi("Vierer Würfel", "13|4|7|3"));
            _kombis.Add(Kombi.GetKombi("Vierer Würfel", "14|7|9|10"));

            _kombis.Add(Kombi.GetKombi("Vierer Neuner", "15|2|6|14"));
            _kombis.Add(Kombi.GetKombi("Vierer Neuner", "16|6|8|15"));
            _kombis.Add(Kombi.GetKombi("Vierer Neuner", "17|8|12|16"));
            _kombis.Add(Kombi.GetKombi("Vierer Neuner", "18|2|12|13"));

            _kombis.Add(Kombi.GetKombi("Fünfer", "19|1|2|7|8"));
            _kombis.Add(Kombi.GetKombi("Fünfer", "20|4|6|10|12"));

            _kombis.Add(Kombi.GetKombi("Knickfünfer", "21|1|2|4|6"));
            _kombis.Add(Kombi.GetKombi("Knickfünfer", "22|4|6|7|8"));
            _kombis.Add(Kombi.GetKombi("Knickfünfer", "23|7|8|10|12"));
            _kombis.Add(Kombi.GetKombi("Knickfünfer", "24|10|12|1|2"));

            _kombis.Add(Kombi.GetKombi("T-Fünfer", "25|1|2|4|10"));
            _kombis.Add(Kombi.GetKombi("T-Fünfer", "26|1|4|6|7"));
            _kombis.Add(Kombi.GetKombi("T-Fünfer", "27|4|7|8|10"));
            _kombis.Add(Kombi.GetKombi("T-Fünfer", "28|1|7|10|12"));

            _kombis.Add(Kombi.GetKombi("Würfel Fünfer", "29|1|10|11|2"));
            _kombis.Add(Kombi.GetKombi("Würfel Fünfer", "30|1|10|11|12"));
            _kombis.Add(Kombi.GetKombi("Würfel Fünfer", "31|1|4|5|2"));
            _kombis.Add(Kombi.GetKombi("Würfel Fünfer", "32|1|4|5|6"));
            _kombis.Add(Kombi.GetKombi("Würfel Fünfer", "33|4|7|3|6"));
            _kombis.Add(Kombi.GetKombi("Würfel Fünfer", "34|4|7|3|8"));
            _kombis.Add(Kombi.GetKombi("Würfel Fünfer", "35|7|9|10|8"));
            _kombis.Add(Kombi.GetKombi("Würfel Fünfer", "36|7|9|10|12"));
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            try
            {
                //int[] istwerte = Werte.GetWerte("8|5").ToArray();
                int[] istwerte = Werte.GetWerte(textBoxEingabe.Text).ToArray();

                List<string> trefferTexte = new List<string>();
                foreach (var kombi in _kombis)
                {
                    if (kombi.Treffer(istwerte))
                    {
                        trefferTexte.Add(kombi.Anzeige());
                    }
                }

                if (trefferTexte.Count == 0)
                {
                    textBoxAusgabe.Text = "Keine Kombi";
                }
                else
                {
                    textBoxAusgabe.Text = string.Join(", ", trefferTexte.ToArray());
                }
            }
            catch (ArgumentException ex)
            {
                textBoxAusgabe.Text = ex.Message;
            }
        }
    }

    public static class Werte
    {
        public static int[] GetWerte(string text)
        {
            if (string.IsNullOrEmpty(text)) throw new ArgumentException("Keine Werte angegeben.");
            string[] felder = text.Split('|');

            List<int> ziel = new List<int>();
            {
                foreach (var feld in felder)
                {
                    int wert;
                    if (!int.TryParse(feld, out wert))
                        throw new ArgumentException("Keine gültiger Wert (\"" + feld + "\").");

                    ziel.Add(wert);
                }
            }
            return ziel.ToArray();
        } 
    }

    public class Kombi
    {
        //Eigenschaften:
        private string _Name = string.Empty; 
        public string Name { get { return _Name; } }

        private List<int> _Sollwerte = new List<int>(); 
        public List<int> Sollwerte { get { return _Sollwerte; } }

        public static Kombi GetKombi(string name, string text)
        {
            Kombi ziel = new Kombi();
            {
                ziel._Name = name;
                ziel._Sollwerte = new List<int>(Werte.GetWerte(text));
            }
            return ziel;
        }

        public string Anzeige()
        {
            List<string> solltexte = new List<string>();
            foreach (var sollwert in _Sollwerte)
            {
		        solltexte.Add(sollwert.ToString());
            }
            return _Name + ": " + string.Join("|", solltexte);
        }

        public bool Treffer(params int[] istwerte)
        {
            if (istwerte == null) return false;
            if (istwerte.Length != _Sollwerte.Count) return false;
            List<int> istrest = new List<int>(istwerte);

            foreach (var sollwert in _Sollwerte)
            {
                int istrestIndex = istrest.IndexOf(sollwert);
                if (istrestIndex == -1) return false;
                istrest.RemoveAt(istrestIndex);
            }
            return true;
        }
    }

Erstellt vor 6 Jahren

Generell sollte man die Designer.cs nicht editieren. Stimmt schon.
Aber ich denke um die Menüleisten wiederherzustellen, kann man die Designer.cs editieren. Geht wesentlich schneller und ist sauberer als alle Menüeinträge neu zu erstellen. Vorausgesetzt man hält sich an die Designerschreibweise, wüsste ich jetzt nichts, was dagegen spricht.

10 von 228 Beiträgen