Wątek przeniesiony 2015-01-17 16:41 z C# i .NET przez ŁF.

przypsianie text w TextBox

0

Witam, jestem osobą początkującą :)
mam dwa Form'y, z kontrolkami TextBox i button1 oraz drugie okno Form1 z przyciskiem button2. Jak przekazać tekst z listy do textBox?

Czy jest ktoś kto mógłby mnie naprowadzić jakbym mogła to zrobić?
Pozdrawiam

1

W klasie Form1_Load utworzyłam listę obiektu Document, która przechowuje dokumenty List<Document> docs = new List<Document>(); Nie wiem jak tą listę mam przekazać jako parametr w kontruktorze AddDocumentWindow podczas kliknięcia przycisku Dodaj na Form1.

class Form2
{
    List<Document> list;
    public Form2(List<Document> list)
    {
        this.list = list;
     }
}
//i przekazujesz listę w konstruktorze
   Form2 f2 = new Form2(listaDokumentow);
0

Hmmm a jak w oknie zrobić, aby przycisk dodawał document utworzony z TextBoxow do listy, która została przekazana w konstruktorze jako parametr?

0

Sorry ale ja się gubię w tym co i gdzie chcesz robić.

0

To co do tej pory zrobiłam wygląda tak (programy w załączniku zapisałam to w formie pdf ).
A muszę zrobić coś takiego, że textBox'y będą uzupełniane danymi z dokumentu. Np.
W oknie AddDocumentWindow textBox1 w polach:
Nazwa pliku zostanie uzupełniony tekstem: faktura1
Numer faktury: 12568
Data wystawienia: 12.10.2010
itd.
i te pobierane dane mają być pobierane z List<Document> w których jest plik wygladający tak:
nazwaPliku = "plik",
numerFaktury = "1256",
dataWystawienia = "12.05.2010",
dataTransakcji = "11.05.2010",
terminPlatnosci = "15.05.2010",
NIPKlienta = "012345678901",
NIPKontra = "1234567891",
nettoZW = "1000",
netto = "1000",
netto5 = "1000",
netto8 = "1000",
netto23 = "1000",
brutto = "1000",
brutto5 = "1000",
brutto8 = "1000",
brutto23 = "1000",
vat = "1000",
vat5 = "1000",
vat8 = "1000",
vat23 = "1000"

Czy teraz jest to bardziej jasne o co mi chodzi? :)

1

W tej liście jest kilka obiektów dokument, skąd wiadomo który ma wyświetlić?

Document doc = list.First();//pobieranie pierwszego dokumentu
textBox1.Text = doc.nazwaPliku;
textBox2.Text = doc.netto;
itp

Co do twojego nazewnictwa:

List<Document> document = new List<Document>(); 

To nie może nazywać się document ponieważ jest to lista dokumentów więc liczba mnoga, i jest to mylące. Powinno być documentList lub po prostu documents

Document document = new Document(); to możesz tak nazwać
public class Document
 {
 public string nazwaPliku = "";
 public string NIPKlienta = "";
 public string NIPKontra = "";
...

To powinny być właściwości czyli:

public class Document
 {
 public string NazwaPliku {get;set;}
 public string NIPKlienta {get;set;}
 public string NIPKontra {get;set;}
...

Nie powinno się też nazywać zmiennych raz po polsku a raz po angielsku. Wybierz jeden język i się go trzymaj, najlepiej angielski.

0

Dobrze, dziękuję za cenne uwagi :) już poprawiam :)

0

Mnie właśnie chodzi o List<Document> docs.

0

Chcesz wyświetlić dane z tej listy w textboxach w formie AddDocumentWindow tak?
Czy może raczej chcesz aby user uzupełnił textboxy samemu i po wciśnięciu dodaj ma się dodać do listy?

0

Dam1an dokładnie tak.

0

Chcę wyświetlić dane z tej listy w textboxach w formie AddDocumentWindow. Tak, że nacisnę przycisk "plus" i w textBox'ach wyświetlą się dane z listy.

0

Widzisz ja bym chciała tą listę przekazać jako parametr w kontruktorze podczas kliknięcia przycisku na Form1. I oprócz tej listy przekazywać, którym uzupełnię textboxy.
A w tym oknie ten mój przycisk działał w ten sposób, aby dodawał document utworzony z TextBoxow do listy, która została przekazana w konstruktorze jako parametr.

1

Widzisz ja bym chciała tą listę przekazać jako parametr w kontruktorze AddDocumentWindow podczas kliknięcia przycisku "znak plusa" na Form1.

No i to Ci pokazałem jak zrobić.

I oprócz tej listy przekazywać obiekt Document, którym uzupełnię textboxy w oknie AddWindowDocument.

To jest niepotrzebne

A w tym oknie AddDocumentWindow ten mój przycisk "DODAJ" działał w ten sposób, aby dodawał document utworzony z TextBoxow okna do listy, która została przekazana w konstruktorze jako parametr. Czyli to co ma się stać po naciśnięciu "DODAJ" to utworzenie obiektu Document, wypełnienie jego pól wartościami z textboxów okienka i dodanie to listy przekazanej w konstruktorze.

No i teraz z tego co zrozumiałem to niepotrzebny jest poprzedni punkt. Nie musisz wysyłać dodatkowego dokumentu w konstruktorze, możesz go sobie utworzyć w drugiej formie i dodać do listy którą już przekazałaś.
W drugiej formie:

class Form2
{
    List<Document> list;
    public Form2(List<Document> list)
    {
        this.list = list;
     }
    void Button_Clicked(object sender, cośtamćośtam)
    {
         Document doc = new Document();
         doc.NazwaPliku = textbox1.Text;
         doc.NumerFaktury = textbox2.Text;
         //itd na koniec
         list.Add(doc);
    }
}
0

Aha to nie muszę wysyłać dodatkowego dokumentu w konstruktorze, myślałam, że trzeba.

0

Damian rzuciłbyś na to okiem? W załączniku jest pdf (niestety VS nie da mi się dołączyć).
Szkoda, że nie mam takiego nauczyciela jak Ty :)

0

OMG Nawet nie wiem od czego zacząć...
Chyba jedyne co mogę doradzić to weź się za jakiś kurs dziewczyno!
Teraz nie mam czasu, później napiszę co jest nie tak.

0

Udało się ;)

1
        public Form1()
        {
            List<Document> docs = new List<Document>();       // lista obiektu Document czyli lista dokumentów, która będzie wczytywała oryginały
            List<Document> document = new List<Document>();
        }

To co robisz w tym konstruktorze nie ma sensu, konstruktor jest wywoływany przy tworzeniu formy, tworzą się te dwie listy i natychmiast są kasowane nie masz możliwości się do nich odwołać, bo nigdzie nie zostawiłaś do nich referencji.
Co do tego:

        private void button1_Click(object sender, EventArgs e)                    // przycisk "plus"
        {
            AddDocumentWindow window = new AddDocumentWindow(List < Document > list);   // konstruktor, w której parametrem jest lista 
            window.ShowDialog();
        }

Przerabialiście już chyba wywoływanie metod? Robisz coś takiego:

static void Write(int n)
{
    Console.WriteLine(n);
}
static void Main()
{
    Write(int number); //jak to ma działać?
}

Powinno być:

public partial class Form1 : Form
    {
        List<Document> docs;
        public Form1()
        {
            docs = new List<Document>();       // lista obiektu Document czyli lista dokumentów, która będzie wczytywała oryginały
        }

        private void button1_Click(object sender, EventArgs e)                    // przycisk "plus"
        {
            AddDocumentWindow window = new AddDocumentWindow(docs);   // konstruktor, w której parametrem jest lista 
            window.ShowDialog();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "Wypełnianie TextBox";
        }

        public bool list { get; set; }
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1