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
Wątek przeniesiony 2015-01-17 16:41 z C# i .NET przez ŁF.
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
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);
Hmmm a jak w oknie zrobić, aby przycisk dodawał document utworzony z TextBoxow do listy, która została przekazana w konstruktorze jako parametr?
Sorry ale ja się gubię w tym co i gdzie chcesz robić.
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? :)
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.
Dobrze, dziękuję za cenne uwagi :) już poprawiam :)
Mnie właśnie chodzi o List<Document> docs.
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?
Dam1an dokładnie tak.
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.
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.
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);
}
}
Aha to nie muszę wysyłać dodatkowego dokumentu w konstruktorze, myślałam, że trzeba.
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 :)
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.
Udało się ;)
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; }
}