Arama butonu
Bu konudaki kullanıcılar: 1 misafir
24
Cevap
57882
Tıklama
0
Öne Çıkarma
C#'ta Formlar Arası Geçiş???
X
19 yıl
Binbaşı
Konu Sahibi

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ı?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



İ
19 yıl
Binbaşı

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 mesaja 1 cevap geldi.
X
19 yıl
Binbaşı
Konu Sahibi

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?


Bu mesaja 1 cevap geldi.
B
16 yıl
Yüzbaşı

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?


Bu mesaja 1 cevap geldi.
_
16 yıl
Yarbay

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


// yada

yeniform.ShowDialog();


Bu mesaja 1 cevap geldi.
B
16 yıl
Yüzbaşı

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


Bu mesaja 1 cevap geldi.
_
16 yıl
Yarbay

Form1'e this.visible = false; yazarsan form1 görünmez dostum


Bu mesaja 1 cevap geldi.
P
16 yıl
Teğmen

Form2 yeniform = new Form2();
yeniform.Show();
this.Close();
Bu şekilde



S
15 yıl
Yüzbaşı

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


Bu mesaja 1 cevap geldi.
K
15 yıl
Er

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;
}


Bu mesaja 1 cevap geldi.
G
15 yıl
Onbaşı

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);


Bu mesaja 1 cevap geldi.
W
15 yıl
Binbaşı

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.


Bu mesaja 1 cevap geldi.
F
14 yıl
Onbaşı

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..


Bu mesaja 1 cevap geldi.
W
14 yıl
Binbaşı

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.


Bu mesaja 1 cevap geldi.
F
14 yıl
Onbaşı

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ı...


Bu mesaja 1 cevap geldi.
W
13 yıl
Binbaşı

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.


Bu mesaja 1 cevap geldi.
F
13 yıl
Yüzbaşı

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?


Bu mesaja 1 cevap geldi.
W
13 yıl
Binbaşı

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.


Bu mesaja 1 cevap geldi.
G
13 yıl
Teğmen

show() fonksiyonu yerine showdialog() fonksiyonunu kullanırsan sorun düzelir


Bu mesaja 1 cevap geldi.
F
13 yıl
Yüzbaşı