Şimdi Ara

VB.Net ile bir formdan diğerine değişken aktarımı.(COK KOLAY GALİBA AMA OLMADI)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
11
Cevap
0
Favori
4.355
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 1
Giriş
Mesaj
  • Örneğin a formunda numara diye bir değişken var, bunu b formunda kullanmak istiyorum.Nasıl yapabilirim. Eskiden VB 6.0 da;



    form2.txtno=form1.txtno seklinde kullanabiliyorduk ama .net te bunu yapamıyorum nedense. Bende yeni bir class hazırladım ve property kullanarak bi özellik tanımlayıp değişkeni o sekilde aktarmayı denedim ama bu seferde form2 acılınca değişken 0 degerini alıyor. Cok basit bi soru ama yapadım bi örnek yazan olursa cok sevinirim...

    Bu arada ben classı 2. formda tanımlarken New ile tanımlıyorum yani ;

    Dim sinifim as new anasinif
    txtno.text=sinifim.numara

    şeklinde.New sözcügü burda değişkeni sıfırlamada bi etkisi olurmu diye düşündüm ve kaldırdım yani şöle yaptım;

    dim sinifim as anasinif
    txtno.text=sinifim.numara

    bu seferde değişkeni görmezden geldi

    Bana birazda bu farkı anlatırsanız güzel olur :)

    Herkese kolay gelsin....



    _____________________________




  • kolay bir yolu vardı galiba bende tam bilmiyorum ama veritabanına kayıt yöntemini deneyebilirsin. belki çok kasar ama çözemezsen denersin.
    _____________________________
    Messagebox.Show("İ Love you")
  • module de değişken tanımlayıp ordan aktarsan olmaz mı??
    _____________________________
    Pamuktan prenses mi olur.Prenses dediğin taşş gibi olur

  • .NET te module diye bişi yok işte VB 6.0 da dediğin gibi oluyordu. Veritabanı olayı çoookkk gereksiz olur. zaten programın kendisi veritabanı programı. Benim bildiğim kadarıyla Constraction olarak bir değişken tanımlayıp form 2 acılırken ona parametre verebiliyorduk. Ama nasıl yapıldıgını tam olarak bilmiyorum...
    _____________________________
  • Butun bunlar object orinteddan gelir. NEW ile bir objectin instance'nı alırsın, yani bir kopyasını. Dolaysıyla bos bir class elde edersin, diger formdan classa koydugun bilgiye ulasamazsın. Cunku diger formda da NEW ile bir kopya yaratmıssındır ve oraya girdigin bilgiler orada kalmıstır. Bu formda NEW ile yarattıgın kopya (instance) ile diger formdaki instance lar farklıdır. İçine ulasamam normal. NEW kullanmadan yapmaya calısıtgında hata alırsın cunku classı direkt kullanmaya calısıyosun demektir.

    Sonucta bir formdaki bilgiyi ( değişken, class, formun kendisi vs..) baska forma aktarmak istiyorsan en kolay yontemi DEFAULT CONSTRUCTOR kullanmaktır.

    Şimdi bunun için 1. formada form1deKullanilanDegisken seklinde bir string değişkeni olgudunu varsayalım.
    2. formun koduna geliyorsun ve once bir değişken sonra da soyle bir sub yaratıyorsun: (default constructor)

    Dim form2deKullanilacakDegisken as string
    Sub NEW (degisken as string)
    form2deKullanilacakDegisken = degisken
    End SUB

    daha sonra form1e gelip bu form 2 yi gosterdigin bolume geliyorsun: su sekilde duzenliuorsun onu:

    Dim form as new Form2Adi(form1deKullanilanDegisken)
    form.showdialog()


    Bu sekilde form1de kullandıgın sitring bir degğişeni 2.forma aktarmıstın. Benzer sekilde bu integer, decimal gibi basit değişkenler olabilecegi gibi dataset, class, form seklinde objectler de olabilir.

    Kolay gelsin, takılırsan ayrıntılı yaz bakalım.
    _____________________________




  • Eywallah arkadasım cok sagolasın aradıgım sey tam olarak buydu. Default Constuructor yani.
    Ama şimdi denedim sorun çıktı.

    Kodlarım şöyle;

    1.FORMDA

    Dim sahipno As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    sahipno = Convert.ToInt32(txtsahipno.Text)

    Dim frmemlak As New frmemlak(sahipno)
    frmemlak.ShowDialog()

    End Sub


    2.FORMDA

    Dim sahipno As Integer

    Sub New(ByVal degisken As Integer)
    sahipno = degisken
    End Sub

    Şimdi ben gelen degiskeni formun load eventinde msgbox ile görüntüleyebiliyorum. Ama textbox1.text=sahipno.tostring yapınca, şöyle bir hata veriyor;

    An unhandled exception of type 'System.NullReferenceException' occurred in Emlak.exe

    Additional information: Object reference not set to an instance of an object.

    Nerde yanlış veya eksik bişi yaptıgımı hala anlayamadım...

    Bu arada msn den yardımlasmak istersen pm ile yolla msn ini ;)



    < Bu mesaj bu kişi tarafından değiştirildi aydinunlu -- 15 Eylül 2006; 4:33:08 >
    _____________________________




  • Dediğim gibi hata hala devam ediyor. Kendi yaptıgım ufak bir deneme programını veriyorum linkte hatanın ne oldugunu bulup düzeltip veya direk calisan ufak bi örnek yaparsanız sevinirim...

    http://www.hemenp&yl&s.com/download/1572832/Default_Constructor_Deneme.rar.html
    _____________________________
  • Yapay Zeka’dan İlgili Konular
    E-Kayıt yaptım ama bu ne?
    geçen yıl açıldı
    Daha Fazla Göster
  • Constructorın icine su satırı eklersen sorunun duzelir:

    Sub New(ByVal aAs Integer)
    Me.InitializeComponent()
    degisken = a
    End Sub

    Bazı seyleri visual studio kendisi halleder, bazılarını da senin yapman gerekir. Hersey tamamen benim kontrolumde olsun istersen ki dogrusu budur OPTION STRICT = ON yapmanı tavsiye ederim ve her projende bu sekilde calismani oneririm. Cok yol gosterir ve herseyi senin yapmani bekler. Option Strict default olarak ON yapmak için, TOOLS - OPTIONS - Projects And Solutions - VB Defaults - OPTION STRICT = ON

    Kolay gelsin...
    _____________________________
  • Me.InitializeComponent()
    bu satır düzeltti sorunumu su anda ufak deneme programımda bi sorun yok. yarın ayık kafayla bide ana programda denerim :) eheheh bi sekilde hallederim artık. cok tesekkür ederim...Kolay gelsin...
    _____________________________
  • quote:

    Orjinalden alıntı: ethan hunt

    module de değişken tanımlayıp ordan aktarsan olmaz mı??


    Ya arkadaşım sendende özür dilerim :) module varmış sadece işte benim dikkatsizliğim biraz. Module ün içinde public olarak bi değişken tanımlarsak her formdan rahatlıkla erişebiliyoruz. Ben add item menusunden baktım ama ilk baktıgımda dikkatsizliğim yüzünden görmemişim module oldugunu ;) 2 parametre göndermek istediğim zaman default constructorda nedense hata ile karsılastım, bende module yolunu tercih ettim bu seferlik. Yardımcı olan herkese tekrar tesekkür ederim...
    _____________________________
  • quote:

    Orjinalden alıntı: aydinunlu



    quote:

    Orjinalden alıntı: ethan hunt

    module de değişken tanımlayıp ordan aktarsan olmaz mı??


    Ya arkadaşım sendende özür dilerim :) module varmış sadece işte benim dikkatsizliğim biraz. Module ün içinde public olarak bi değişken tanımlarsak her formdan rahatlıkla erişebiliyoruz. Ben add item menusunden baktım ama ilk baktıgımda dikkatsizliğim yüzünden görmemişim module oldugunu ;) 2 parametre göndermek istediğim zaman default constructorda nedense hata ile karsılastım, bende module yolunu tercih ettim bu seferlik. Yardımcı olan herkese tekrar tesekkür ederim...




    _____________________________
    Pamuktan prenses mi olur.Prenses dediğin taşş gibi olur





  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.