2016-03-26 16 views
-1

Bazen bazı adımları geri almam gereken bir oyun programlıyorum, bunu yapmak için doğrudan bir yol var mı? Denetimleri veri yapıları, yığınlar ve listelerde koymaya çalıştım, ancak oyunumda işler çok karmaşık. teşekkürlerWinform'daki değişiklikleri nasıl geri alabilir ve önceki form durumunu alabilirim?

+1

"Değişiklikler" ve "form durumu" ile ne demek istiyorsunuz? Muhtemelen cevap her halükarda kendiniz yapmak zorundadır. –

+0

Oyunumdaki kullanıcı bir şeyleri değiştirdiğinde, bunu geri alma şansı vermek istiyorum. Bu, formun içinde bulunduğu önceki durumu almak istediğim anlamına gelir. – Sujood

+0

Yine de, "durum" nedir? Ne şeyler değişti? Pozisyon? Metin? Değerler? Renkler? Boyutları? Her nasılsa geri dönmek için bu "devlet" bir şekilde kaydetmek zorunda kalacaksınız. –

cevap

0

Hayır, bunu yapmak için yerleşik bir yol yoktur; Kendiniz kodlamak zorundasınız. Durumunu kaydetmek istediğiniz formdaki her denetimin değerlerini temsil edecek üyeleri olan FormState sınıfını oluşturmanızı öneririm. Daha sonra form değerlerini forma ve forma kopyalamak için yöntemler ekleyin. Son olarak, programınızda bir yığın veri yapısı oluşturun. Kullanıcı formda bir şeyi değiştirdiğinde, FormState'un yeni bir örneğini oluşturun, geçerli form durumunu FormState nesnesine aktarma yöntemini çağırın ve yığının üzerine itin. Kullanıcı geri alırsa, son durumu yığından çıkarın ve FormState sınıfından form denetimlerini geri yüklemek için yöntemi çağırın. Bu gerçekten bunun için var.

İlgili konular