Vb.net showdialog 'a bilgileri düzgün aktaramıyorum?

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
Arkadaşlar problemimi şöyle anlatayım
projede 2 adet form var Form1 ve Form2
Form1'in içinde bir adet datagridview1 ve bir adet buton(adı düzenle olsun)
Form2'nin içinde ise bir iki tane textbox var
Form1'deki datagridview1'e bir access'ten bilgileri DataGridView1.DataSource = ds gibi bir kodla aktarıyorum ben dataset değil dataview kullanıyorum.
Proje şöyle çalışıcak DataGridView1 içinde bilgilerle dolu bir satıra tıklatıyorum ardından bu formun üzerinde Düzenle adını verdiğim butona tıklatıyorum
ve Form2.showdialog() komutuyla form2'yi açıyorum benim istediğim seçtiğim satırdaki bilgileri Form2'deki textboxlara doldurmak bunu başaramıyorum......:(
Benim yaptığım projede herşey bir adım geriden gidiyor programı çalıştırıyorum datagridview'de bir satırı seçip butona basıyorum Form2 açılıyor textbox'ların içi boş Form2'yi kapatıyorum Datagridview'de başka satıra tıklatıyorum ardından butona basıyorum Form2'de bir önceki işlemde seçtiğim satır bilgileri ile dolmuş oluyor hep böyle devam ediyor hep bir işlem geriden geliyor bu sorunu nasıl çözerim Form2.Show() değil Form2.ShowDialog() yöntemini kullanarak yapmam lazım
bu arada araştırmalarımda birşeyler buldum ama anlayamadım bu konuyla ilgili olabilirler aşağıdaki linklerede bakabilirsiniz
http://stackoverflow.com/questions/2507927/pass-string-to-dialog-in-vb-net
http://vbnotebookfor.net/2007/09/28/how-to-pass-data-between-forms-in-vbnet/
 

hokumus

Asistan
Katılım
15 Mayıs 2012
Mesajlar
173
Reaksiyon puanı
3
Puanları
18
Selamlar,

Sorunun kaynağı değer atamanın sıralamasından kaynaklanmaktadır.
Yani;

Kod:
        Form2.ShowDialog()
        Form2.TextBox1.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0).Value.ToString()
        Form2.TextBox2.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value.ToString()


Muhtelemen kodun bu şekilde. Önce Forma bağlanıyorsun ve sonra ilgili alanlara değerlerini atıyorsun.
Hatalı kısım değer atamasını forma bağlandıktan sonra yapıyor olman. Bu şekilde yaptığın için her açtığında bir önce seçtiğin satırın bilgisini göreceksin.
Düzeltmek için;

Kod:
Form2.TextBox1.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0).Value.ToString()
        Form2.TextBox2.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value.ToString()
        Form2.ShowDialog()


Yukarıdaki gibi önce değer atamasını sonrasında forma bağlanmayı denersen sorunun çözülecektir.


Başarılar dilerim.
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
Selamlar,

Sorunun kaynağı değer atamanın sıralamasından kaynaklanmaktadır.
Yani;

Kod:
        Form2.ShowDialog()
        Form2.TextBox1.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0).Value.ToString()
        Form2.TextBox2.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value.ToString()


Muhtelemen kodun bu şekilde. Önce Forma bağlanıyorsun ve sonra ilgili alanlara değerlerini atıyorsun.
Hatalı kısım değer atamasını forma bağlandıktan sonra yapıyor olman. Bu şekilde yaptığın için her açtığında bir önce seçtiğin satırın bilgisini göreceksin.
Düzeltmek için;

Kod:
Form2.TextBox1.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0).Value.ToString()
        Form2.TextBox2.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value.ToString()
        Form2.ShowDialog()


Yukarıdaki gibi önce değer atamasını sonrasında forma bağlanmayı denersen sorunun çözülecektir.


Başarılar dilerim.

Teşekkür ederim form açılmadan değer atamasının yapılabildiğini bilmiyordum problem tam düşündüğün gibiymiş Form2.ShowDialog() kodunu sona alınca problem kalmadı
 

hokumus

Asistan
Katılım
15 Mayıs 2012
Mesajlar
173
Reaksiyon puanı
3
Puanları
18
Selamlar,

Halletmene ve yardımcı olabildiğime sevindim.

Başarılar dilerim.
 
Üst