C# dil seçeneğini diğer formda aktifleştirmek

berkayx

Hectopat
Katılım
19 Nisan 2020
Mesajlar
1.483
Çözümler
17
Dil seçeneği ve hakkında diye iki tane menüstrip düşünün. Hakkında menüstrip'e tıkladığın zaman form2'ye yönlendiriyor. Şimdi dil seçeneğinden İngilizceyi seçtiğim zaman hakkındaki yazıların da İngilizce olmasını istiyorum, nasıl yapabilirim?

@Eray T - Galiba senin programında vardı öyle bir şey, yardımcı olursan sevinirim.
 
Son düzenleyen: Moderatör:
Berkay sen daha yeni yeni öğreniyorsun galiba C# dilini. Herhangi bir eğitim veya aldığın kurs var mı? Eğer yoksa kurs almanı öneririm. Son zamanlarda bir çok konu açtın. Konu aç demiyorum ama senin sorduğun sorular daha önce soruldu. İnternetten bakıverip yapmak çok daha hızlı ve çok daha iyi olacaktır. Ve bir iş yaparken diğer insanlar nasıl yapmış diye bak. Ben çok yapıyorum bunu. Bakış açısı kazandırır. Farklı çözümler görürsün.
Soruya gelecek olursak. Dili nasıl değiştirdiğini bilmiyoruz ki? Diğer konunda benim sana verdigim cevap gibi yapacaksan. Form2 constructor'ına ILanguage sınıfından bir nesne gönderirsin. Sonra tüm textleri buna göre düzenlersin.

[CODE lang="csharp" title="Form1"]ILanguage language;
private void button1_Click(object sender, EventArgs e)
{
language = new Language_TR();
Form2 form2 = new Form2(language);
form2.Show();
}

private void button2_Click(object sender, EventArgs e)
{
language = new Language_EN();
Form2 form2 = new Form2(language);
form2.Show();
}[/CODE]

[CODE lang="csharp" title="Form2 constuctor"]public Form2(ILanguage language)
{
InitializeComponent();
label1.Text = language.LanguageData["lang"];
}[/CODE]

Diger Türlü form1 de static degişken oluşturursun. Form2 Consturctorunda bu degişkene göre dil text'lerini degiştirirsin.

[CODE lang="csharp" title="Form1"]public static int language;
private void button1_Click(object sender, EventArgs e)
{
language = 1;
Form2 form2 = new Form2();
form2.Show();
}

private void button2_Click(object sender, EventArgs e)
{
language = 2;
Form2 form2 = new Form2();
form2.Show();
}[/CODE]

[CODE lang="csharp" title="Form2"]public Form2()
{
InitializeComponent();
if(Form1.language == 1)
{
label1.Text = "Tr";
} else
{
label1.Text = "En";
}
}[/CODE]

Not: ikiside aynı çıktıyı üretir.
 

Dosya Ekleri

  • lang.PNG
    lang.PNG
    14,8 KB · Görüntüleme: 37
Berkay sen daha yeni yeni öğreniyorsun galiba C# dilini. Herhangi bir eğitim veya aldığın kurs var mı? Eğer yoksa kurs almanı öneririm. Son zamanlarda bir çok konu açtın. Konu aç demiyorum ama senin sorduğun sorular daha önce soruldu. İnternetten bakıverip yapmak çok daha hızlı ve çok daha iyi olacaktır. Ve bir iş yaparken diğer insanlar nasıl yapmış diye bak. Ben çok yapıyorum bunu. Bakış açısı kazandırır. Farklı çözümler görürsün.
Soruya gelecek olursak. Dili nasıl değiştirdiğini bilmiyoruz ki? Diğer konunda benim sana verdigim cevap gibi yapacaksan. Form2 constructor'ına ILanguage sınıfından bir nesne gönderirsin. Sonra tüm textleri buna göre düzenlersin.

[CODE lang="csharp" title="Form1"]ILanguage language;
private void button1_Click(object sender, EventArgs e)
{
language = new Language_TR();
Form2 form2 = new Form2(language);
form2.Show();
}

private void button2_Click(object sender, EventArgs e)
{
language = new Language_EN();
Form2 form2 = new Form2(language);
form2.Show();
}[/CODE]

[CODE lang="csharp" title="Form2 constuctor"]public Form2(ILanguage language)
{
InitializeComponent();
label1.Text = language.LanguageData["lang"];
}[/CODE]

Diger Türlü form1 de static degişken oluşturursun. Form2 Consturctorunda bu degişkene göre dil text'lerini degiştirirsin.

[CODE lang="csharp" title="Form1"]public static int language;
private void button1_Click(object sender, EventArgs e)
{
language = 1;
Form2 form2 = new Form2();
form2.Show();
}

private void button2_Click(object sender, EventArgs e)
{
language = 2;
Form2 form2 = new Form2();
form2.Show();
}[/CODE]

[CODE lang="csharp" title="Form2"]public Form2()
{
InitializeComponent();
if(Form1.language == 1)
{
label1.Text = "Tr";
} else
{
label1.Text = "En";
}
}[/CODE]

Not: ikiside aynı çıktıyı üretir.
Button'la yapmayı bende biliyorum fakat toolstrip click ile yapamıyorum. Sorun o işte.
 
Button'la yapmayı bende biliyorum fakat toolstrip click ile yapamıyorum. Sorun o işte.
O bir sorun degil. Sen hata yapıyorsundur. Bunun butonla toolstriple alası yok. istersem label'a, checkboxa tıklayınca da dil degiştirmesini yapabilirim. Önemli olan tıklanacak yer degil. Tıklandığında ne yapacağıdır. Zaten arka planı yaptıysan, sorunu anlamamız için biraz kod ve ekran görüntüsü paylaş ki bizde derdin ne anlayalım. Mesela click event kodlarını at bakalım.
 
O bir sorun degil. Sen hata yapıyorsundur. Bunun butonla toolstriple alası yok. istersem label'a, checkboxa tıklayınca da dil degiştirmesini yapabilirim. Önemli olan tıklanacak yer degil. Tıklandığında ne yapacağıdır. Zaten arka planı yaptıysan, sorunu anlamamız için biraz kod ve ekran görüntüsü paylaş ki bizde derdin ne anlayalım. Mesela click event kodlarını at bakalım.
Tamam hallettim, teşekkürler.
 

Geri
Yukarı