Şimdi Ara

C#'ta Formlar Arası Geçiş???

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
25
Cevap
0
Favori
57.882
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Arkadaşlar, yapmaya çalıştığım şey, tek bir proje içindeki 5-6 adet formlar arasında butonlarla geçiş sağlamak.

    Form1.ActiveForm.Hide();
    Form2 form2 = new Form2();
    form2.Show();

    Bu kodları kullandım ancak bu şekilde yapınca gizlediğim formlara bir daha erişemiyorum. Başka bir yolu var mı?



  • Bu işlem için global bir modül kullanmanı tavsiye ederim...

    class1.cs

    formları glabal class içinde deklare ettikten sonra close yapıp. istediğin formu görünür kılabilirsin...
    Csharpta form üzerinde bu tür basit işlemleri yapamamak gerçektende bazı yerlerde can sıkıcı olabiliyor...

    İyi Çalışmalar...
  • quote:

    Orjinalden alıntı: Aspci79

    Bu işlem için global bir modül kullanmanı tavsiye ederim...

    class1.cs

    formları glabal class içinde deklare ettikten sonra close yapıp. istediğin formu görünür kılabilirsin...
    Csharpta form üzerinde bu tür basit işlemleri yapamamak gerçektende bazı yerlerde can sıkıcı olabiliyor...

    İyi Çalışmalar...


    Bu söylediğini nasıl yapabilirim? Diyelim ki global class içinde şu satırlar olsun;

    Form1 form1 = new Form1(); 
    Public Static Form2 form2 = new Form2();
    Public Static Form3 form3 = new Form3();
    Public Static Form4 form4 = new Form4();
    Public Static form1.show();



    Ve diyelim ki açılan formda bir butona atanmış şu satırlar var;

    Form1.ActiveForm.Hide(); 
    form2.show();


    Görüldüğü gibi ikinci satırda tekrar form2'yi çağırmam lazım ancak değişkene erişemiyorum. Her ne kadar global sınıftaki tüm nesneleri static ve public tanımlamış olsam da görünmüyor. Global sınıftaki nesneleri diğer sınıflara göstermenin başka bir yolu var mı? Mesela global sınıftaki nesneleri form sınıflarının başında bi şekilde import edebilir miyim?




  • ben de aynı sorunla karşılaştım

    formlar.cs dosyasını şu şekilde oluşturdum:

    using System; 
    namespace WindowsApplication2
    {
    public class formlar
    {
    public static Form1 form1=new Form1();
    public static Form2 form2=new Form2();
    }
    }


    ardından Form1'deki butonun click olayına şunları ekledim:
     
    formlar.form1.Hide();
    formlar.form2.Show();


    bu durumda kod hatasız derleniyor fakat butona tıklanıldığında form1 gizlenmeden form2 açılıyor
    halbuki formlar.form1.Hide(); demiştim, gizlenmesi gerekmez miydi?

    ayrıca, butona tıklandığında form2 açılsın, ancak form1 gizlenmesin (tamamen sonlansın) istiyorum
    bunu nasıl yapabiliriz?
  • Form2 yeniform = new Form2();
    yeniform.Show();


    // yada

    yeniform.ShowDialog();
  • quote:

    Orjinalden alıntı: _conscript_

    Form2 yeniform = new Form2();
    yeniform.Show();


    // yada

    yeniform.ShowDialog();

    cevabınız için teşekkürler ancak bu sadece form2'nin de açılmasını sağlar bence
    ben form2 açılırken form1'in kapanmasını istiyorum
  • Form1'e this.visible = false; yazarsan form1 görünmez dostum
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • Form2 yeniform = new Form2();
    yeniform.Show();
    this.Close();
    Bu şekilde
  • konu 2007 de açılmış ama kimse doğru cevap vermemiş :)

    burdakiler olmadı biraz uğraştan sonra sorunum çözüldü paylaşıyorum lazım olanlara


    this.Visible = false; //ana formumuz gizleniyor
    Form2 userform = new Form2(); //formu oluşturuyoruz
    userform.ShowDialog(); // oluşturduğumuz form gösteriliyor
    this.Visible = true; //showdialog kullandığımız için bu bölüm gösterdiğimiz form kapananınca çalışıyor ve ana formumuz ekrna geliyr
    this.BringToFront(); // son olarak ana formumuzu diğer pencereler varsa ön plana alıyoruz.


    İyi çalışmalar
  • hocam istediğin şey net olarak bu

    private void button1_Click(object sender, EventArgs e)
    {
    Form1.ActiveForm.Hide();
    Form2 frm = new Form2();
    frm.ShowDialog();
    Form1 frm2 = new Form1();
    frm2.Visible = true;
    }
  • Kralsın "konti73" işe yaradı :D
    Bende bişi sormak istiyorum sql connection bağlantısını bir türlü beceremedim intden araştırdım ama malesef olmuyor.
    Bunlarda kodlarım acaba nerede yanlış yaptım ?
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;


    namespace Filmarsivi2
    {
    public partial class Form1 : Form
    {
    string filmadi;
    string yonetmeni;
    string oyunculari;
    string gosterimt;
    string kayitt;

    DialogResult mesac;


    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void button3_Click(object sender, EventArgs e)
    {
    Form1.ActiveForm.Hide();
    Form2 frm = new Form2();
    frm.ShowDialog();
    Form1 frm2 = new Form1();
    frm2.Visible = true;

    }

    private void button1_Click(object sender, EventArgs e)
    {
    string connetionString = null;
    SqlConnection cnn;
    connetionString = "Data Source= HVS00961\SQLEXPRESS;Initial Catalog=filmarsivi1;User ID=HAVAS\itstajyer;Password=;";
    cnn = new SqlConnection(connetionString);

    filmadi = textBox1.Text;
    yonetmeni = textBox2.Text;
    oyunculari = textBox3.Text;
    gosterimt = comboBox1.Text;
    kayitt = comboBox2.Text;

    cnn.Open();

    DataSet ds = new DataSet();

    SqlCommand cmdSQL1 = new SqlCommand("SELECT MAX(filmid) FROM filmarsivi1", cnn);

    int filmid = 0;

    if (cmdSQL1.ExecuteScalar().ToString() == "")
    {
    filmid = 1;
    }
    else
    {
    filmid = Convert.ToInt32(cmdSQL1.ExecuteScalar().ToString()) + 1;
    }

    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM filmarsivi1", cnn);
    da.InsertCommand = new SqlCommand("INSERT INTO filmarsivi1 (filmadi, yonetmeni, oyunculari) VALUE (@film_adi, @yonetmeni, @oyunculari)", cnn);
    da.InsertCommand.Parameters.Add("@film_adi", SqlDbType.NChar).Value = filmadi.ToString();
    da.InsertCommand.Parameters.Add("@yonetmeni", SqlDbType.NChar).Value = yonetmeni.ToString();
    da.InsertCommand.Parameters.Add("@oyunculari", SqlDbType.NChar).Value = oyunculari.ToString();

    cnn.Close();
    mesac = MessageBox.Show("Kayıt Eklendi", "Kayıt Ekleme", MessageBoxButtons.OK, MessageBoxIcon.Information);




  • this.Hide();//gizle
    this.Show();//göster
    fakat burda this.Show() u nereye yazdığınızda önemli tabiki formun içinde bir button un click eventine yazarsanız erişemezsiniz(Hide dan sonra); Ama mesela;
    private void Button1_Click(Object sender, EventArgs e)
    {
    this.Hide();
    this.Show();
    }
    yaptığınızda formun gizlenip tekrar geldiğini göreceksiniz.
  • OleDbConnection connect = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=fatih.mdb;");
    string ara = "insert into nalbur_musteri (isim,tel,adres) values ('"+ismi.Text+"','"+teli.Text+"','"+adresi.Text+"')";
    OleDbDataAdapter sadp = new OleDbDataAdapter(ara,connect);
    DataSet ds = new DataSet();
    connect.Open();
    sadp.Fill(ds);
    connect.Close();
    MessageBox.Show(ismi.Text +" Adlı Kayıt Eklendi","Bildirim Mesajı");





    arkadaşlar bu kodu uyguladığım zaman veritabanına kaydetmiyor..C# ta biraz yeniyim yardımcı olursanız çok sevinirim..
  • quote:

    Orijinalden alıntı: fatihkacak

    OleDbConnection connect = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=fatih.mdb;");
    string ara = "insert into nalbur_musteri (isim,tel,adres) values ('"+ismi.Text+"','"+teli.Text+"','"+adresi.Text+"')";
    OleDbDataAdapter sadp = new OleDbDataAdapter(ara,connect);
    DataSet ds = new DataSet();
    connect.Open();
    sadp.Fill(ds);
    connect.Close();
    MessageBox.Show(ismi.Text +" Adlı Kayıt Eklendi","Bildirim Mesajı");





    arkadaşlar bu kodu uyguladığım zaman veritabanına kaydetmiyor..C# ta biraz yeniyim yardımcı olursanız çok sevinirim..

    Kodda bir hata göremedim ama hatayı da yazarsan daha iyi olur, hata almıyorsan da veritabanını iyi kontrol et, çalıştırdığın dosyada bulunmasına dikkat et.




  • bir hata vermiyo normal şekilde çalışıyor...veritabanına kaydet dediğimde kayıt gerçekleşiyor....kayıtları listele butonuna tıkladığımda ise eklenen kaydı gösteriyor...formu kapatıp veritabanımdaki tabloma bakıyorum kayıt eklenmemiş....daha sonra formu mu tekrar çalıştırıyorum...kayıtları listele diyince kayıt göstermiyor...debug klasörünün içine attım veritabanımı...
  • quote:

    Orijinalden alıntı: fatihkacak

    bir hata vermiyo normal şekilde çalışıyor...veritabanına kaydet dediğimde kayıt gerçekleşiyor....kayıtları listele butonuna tıkladığımda ise eklenen kaydı gösteriyor...formu kapatıp veritabanımdaki tabloma bakıyorum kayıt eklenmemiş....daha sonra formu mu tekrar çalıştırıyorum...kayıtları listele diyince kayıt göstermiyor...debug klasörünün içine attım veritabanımı...

    Pek anlayamadım hala neden böyle birşey olduğunu.
  • arkadaşlar C# ta Form üzerinde bulunan webbrowser form a nasıl sabitlerim,yani form un boyutuna göre browser ın da boyutu nasıl aynı olur?
  • quote:

    Orijinalden alıntı: frcst

    arkadaşlar C# ta Form üzerinde bulunan webbrowser form a nasıl sabitlerim,yani form un boyutuna göre browser ın da boyutu nasıl aynı olur?

    Sadece WebBrowser için değil diğer nesneler için de Dock diye bir özellik var onu Fill seçeneğine getirirsen istediğin olur. Bir nesne seçili olduğu zaman Properties penceresinden bunu yapabileceğin gibi,
    webBrowser1.Dock = DockStyle.Fill;
    bu komut ile de yapabilirsin.
  • show() fonksiyonu yerine showdialog() fonksiyonunu kullanırsan sorun düzelir
  • teşekkürler arkadaşlar
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.