Çözüldü C# ilk çalıştığında nasıl form açılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Kroverr

Centipat
Katılım
20 Temmuz 2022
Mesajlar
17
Daha fazla  
Cinsiyet
Erkek
Merhaba, başlıkta çok istediğimi anlatamadım, C# ile bir program kodluyorum ve bu programın ilk formunu ilk açılışta açılmasını istiyiyorum sonraki açılan zamanlarda direkt form 2'nin açılmasını istiyorum. Bunu nasıl yapacağım? Bilen varsa yardım edebilir mi? Şimdiden teşekkür ederim yardımlarınız için.
 
Son düzenleyen: Moderatör:
Çözüm
Merhaba tam istediğimi anlatamadım, programı yeni bir bilgisayara kurduğumda ilk açılışta form 1 açılacak sonra programı kapatıp açtığımda form 2'nin açılmasını istiyorum. Form 1 sadece ilk programı açıldığında açmak istiyorum sonraki zamanlarda açılmayacak.
Merhaba; Settings kullanarak ve/veya basit bir text dosyası, config dosyası gibi şeyler oluştururarak rahatlıkla bunu kontrol edebilirsin.

Settings yerel bir kullanıcıda geçerli olan ve bu tarz basit kayıt işlemleri için kullanılan özellik. Projeye eklemek için; Çözüm Gezgini (Solution Explorer)'da projenizin ismine sağ tıklayın ve Özellikler deyin.
1669068621314.png

Sonrasında Settings (Türkçe menü de ne yazıyor bilmiyorum) -> Create or open application settings yaptığınızda önünüzde bir tablo açılacak.
1669068730382.png


Açılan menüde bir değişken tanımlıyoruz; bu değişkeni ben true olarak atadım. Program ilk defa açıldığında true olacak. Daha sonrasında 1. formumuzda gerekli işlemleri tamamladıktan sonra bunu false yapabiliriz ve form1'in kendini kapatıp kapatmadan önce form2'yi açmasını sağlayabiliriz.
1669068874648.png


Program.cs dosyası içinde, static void main'e bir if else kontrolü ekliyoruz.
C#:
if(Properties.Settings.Default.FirstTime)
            {
                Application.Run(new Form1());
            }
            else
            {
                Application.Run(new Form2());
            }

Eğer program ilk defa çalışıyorsa Form1'le açılacak. Değilse Form2'yle açılacak. Form1'de de kapatma butonuna bool değeri false yapmayı eklersek, bir dahaki açılışta, program form1 yerine form2 ile açılmış olur.
Butona aşağıdaki kodları eklediğimizde, ilk defa açılmayı kontrol eden bool değişkeni false yapacak ve kendisini kapatım Form2 ile uygulamayı tekrar açacak.
C#:
Properties.Settings.Default.FirstTime = false;
            Properties.Settings.Default.Save();
            Process.Start($"./{System.AppDomain.CurrentDomain.FriendlyName}");
            this.Close();
Bunu yapmamın sebebi eğer this.Hide() fonksiyonunu kullanırsam Form2 kapansa bile Form1 kapanmamış olacağı için uygulamanın arka planda açık kalacak olması. Bu bir bug. Bunun önüne geçmek için programı ya son form ile birlikte kapanmaya ayarlayacaksın yada form'u kapatmadan önce yeni bir uygulama çalıştırıp formu öyle kapatacaksın. C#'da default olarak ilk form kapanırsa uygulama kapanır olduğu için ilk formu kapatıp Form2'yi açamıyoruz. Sorun varsa sorabilirsin.
Program.cs içerisinde Application.Run(new Form1()) gibi bir kod olması lazım. Oradaki Run methodu içerisine, programın hangi formdan başlamasını istiyorsan onu yazman yeterli.
 
Program. CS içerisinde application. Run(New Form1()) gibi bir kod olması lazım. Oradaki Run methodu içerisine, programın hangi formdan başlamasını istiyorsan onu yazman yeterli.

Merhaba tam istediğimi anlatamadım, programı yeni bir bilgisayara kurduğumda ilk açılışta form 1 açılacak sonra programı kapatıp açtığımda form 2'nin açılmasını istiyorum. Form 1 sadece ilk programı açıldığında açmak istiyorum sonraki zamanlarda açılmayacak.
 
Merhaba tam istediğimi anlatamadım, programı yeni bir bilgisayara kurduğumda ilk açılışta form 1 açılacak sonra programı kapatıp açtığımda form 2'nin açılmasını istiyorum. Form 1 sadece ilk programı açıldığında açmak istiyorum sonraki zamanlarda açılmayacak.
Merhaba; Settings kullanarak ve/veya basit bir text dosyası, config dosyası gibi şeyler oluştururarak rahatlıkla bunu kontrol edebilirsin.

Settings yerel bir kullanıcıda geçerli olan ve bu tarz basit kayıt işlemleri için kullanılan özellik. Projeye eklemek için; Çözüm Gezgini (Solution Explorer)'da projenizin ismine sağ tıklayın ve Özellikler deyin.
1669068621314.png

Sonrasında Settings (Türkçe menü de ne yazıyor bilmiyorum) -> Create or open application settings yaptığınızda önünüzde bir tablo açılacak.
1669068730382.png


Açılan menüde bir değişken tanımlıyoruz; bu değişkeni ben true olarak atadım. Program ilk defa açıldığında true olacak. Daha sonrasında 1. formumuzda gerekli işlemleri tamamladıktan sonra bunu false yapabiliriz ve form1'in kendini kapatıp kapatmadan önce form2'yi açmasını sağlayabiliriz.
1669068874648.png


Program.cs dosyası içinde, static void main'e bir if else kontrolü ekliyoruz.
C#:
if(Properties.Settings.Default.FirstTime)
            {
                Application.Run(new Form1());
            }
            else
            {
                Application.Run(new Form2());
            }

Eğer program ilk defa çalışıyorsa Form1'le açılacak. Değilse Form2'yle açılacak. Form1'de de kapatma butonuna bool değeri false yapmayı eklersek, bir dahaki açılışta, program form1 yerine form2 ile açılmış olur.
Butona aşağıdaki kodları eklediğimizde, ilk defa açılmayı kontrol eden bool değişkeni false yapacak ve kendisini kapatım Form2 ile uygulamayı tekrar açacak.
C#:
Properties.Settings.Default.FirstTime = false;
            Properties.Settings.Default.Save();
            Process.Start($"./{System.AppDomain.CurrentDomain.FriendlyName}");
            this.Close();
Bunu yapmamın sebebi eğer this.Hide() fonksiyonunu kullanırsam Form2 kapansa bile Form1 kapanmamış olacağı için uygulamanın arka planda açık kalacak olması. Bu bir bug. Bunun önüne geçmek için programı ya son form ile birlikte kapanmaya ayarlayacaksın yada form'u kapatmadan önce yeni bir uygulama çalıştırıp formu öyle kapatacaksın. C#'da default olarak ilk form kapanırsa uygulama kapanır olduğu için ilk formu kapatıp Form2'yi açamıyoruz. Sorun varsa sorabilirsin.
 
Çözüm
Merhaba; settings kullanarak ve/veya basit bir text dosyası, Config dosyası gibi şeyler oluştururarak rahatlıkla bunu kontrol edebilirsin.

settings yerel bir kullanıcıda geçerli olan ve bu tarz basit kayıt işlemleri için kullanılan özellik. Projeye eklemek için; çözüm gezgini (solution Explorer)'da projenizin ismine sağ tıklayın ve özellikler deyin.
Eki Görüntüle 1580743
Sonrasında settings (Türkçe menü de ne yazıyor bilmiyorum) -> create or open application settings yaptığınızda önünüzde bir tablo açılacak.
Eki Görüntüle 1580745

Açılan menüde bir değişken tanımlıyoruz; bu değişkeni ben true olarak atadım. Program ilk defa açıldığında true olacak. Daha sonrasında 1. formumuzda gerekli işlemleri tamamladıktan sonra bunu false yapabiliriz ve form1'in kendini kapatıp kapatmadan önce form2'yi açmasını sağlayabiliriz.
Eki Görüntüle 1580747

Program. CS dosyası içinde, static Void Main'e bir if else kontrolü ekliyoruz.
C#:
if(Properties.Settings.Default.FirstTime)
 {
 Application.Run(new Form1());
 }
 else.
 {
 Application.Run(new Form2());
 }

Eğer program ilk defa çalışıyorsa form1'le açılacak. Değilse form2'yle açılacak. Form1'de de kapatma butonuna bool değeri false yapmayı eklersek, bir dahaki açılışta, program form1 yerine form2 ile açılmış olur.
Butona aşağıdaki kodları eklediğimizde, ilk defa açılmayı kontrol eden bool değişkeni false yapacak ve kendisini kapatım form2 ile uygulamayı tekrar açacak.
C#:
Properties.Settings.Default.FirstTime = false;
 Properties.Settings.Default.Save();
 Process.Start($"./{System.AppDomain.CurrentDomain.FriendlyName}");
 this.Close();
Bunu yapmamın sebebi eğer this.Hide() fonksiyonunu kullanırsam Form2 kapansa bile Form1 kapanmamış olacağı için uygulamanın arka planda açık kalacak olması. Bu bir bug. Bunun önüne geçmek için programı ya son form ile birlikte kapanmaya ayarlayacaksın yada form'u kapatmadan önce yeni bir uygulama çalıştırıp formu öyle kapatacaksın. C#'da default olarak ilk form kapanırsa uygulama kapanır olduğu için ilk formu kapatıp Form2'yi açamıyoruz. Sorun varsa sorabilirsin.

Çok teşekkür ederim işe yaradı.
 

Technopat Haberler

Yeni konular

Geri
Yukarı