Zadatak:
Napisati program u jeziku C# sa WebBrowser kontrolom, te da ima mogućnost kretanja napred i nazad već otvarane stranice u kontroli, štampu sadržaja kontrole na podrazumevanom štampaču, dugme za navigaciju koje otvara stranicu iz textBox kontrole, te 2 dugmeta za posetu WebMail servisima i popunjavanje login polja na istim. Pri kliku na dugmad za popunjavanje polja, potrebno je da se pokrene druga forma, te da pita za lozinku pristupa programu (ne webMail lozinku). Mi smo za primer postavili Gmail i ITS dugme. Pri pokretanju programa, potrebno je da se otvara neka stranica (npr. https://www.its.edu.rs/). Program treba izgledati kao na slici ispod:


Slika 21.1 – izgled programa

Svojstva komponenti (svojstva koja nisu navedena u listi ispod su ostavljena kao podrazumevana svojstva koje napravi VS 2008):

  • WebBrowser
    • Name: wbBrowser, Anchor: Top, Bottom, Left, Right, Location: 0; 109, MinimumSize: 20; 20, Size: 561; 354
  • Button
    • Name: buttonNazad, Locaton: 12;12, Text: Nazad, Size: 75; 23
    • Name: buttonNapred, Locaton: 93;12, Text: Napred, Size: 75; 23
    • Name: buttonStampaj, Locaton: 174;12, Text: Stampaj, Size: 75; 23
    • Name: buttonNavigacija, Locaton: 156; 68, Text: Navigacija, Size: 93; 23
    • Name: buttonGmail, Locauton: 7; 20, Text: Gmail, Size: 132; 23
    • Name: buttonPgmail, Locauton: 7; 57, Text: Popuni Gmail, Size: 132; 23
    • Name: buttonIts, Locauton: 7; 20, Text: ITS, Size: 132; 23
    • Name: buttonPits, Locauton: 7; 57, Text: Popuni ITS, Size: 132; 23
    • Name: btnOK, Location: 58; 51, Text: OK, Size: 75; 23, DialogResult: OK
  • TextBox
    • Name: edtNavigacija, Location: 12; 70, Size: 138; 20
    • Name: edtSifra, Location: 12; 25, Size: 172; 20
  • Label
    • Name: lblSifra, AutoSize: True, Location: 20; 9, Size: 144; 13, Text: Unesite sifru za pristup Mailu:
  • Form
    • Name: frmGlavna, AutoScaleMode: Font, MinimumSize: 580; 500, Size: 580; 500, StartPosition: CenterScreen, Text: WebMail
    • Name: frmLogovanje, AutoScaleMode: Font, MinimumSize: 209; 117, MaximumSize: 209; 117, Size: 209; 117, StartPosition: CenterParent, Text: Logovanje, TopMost: True, AcceptButton: btnOK

Rešenje:
Napraviti Windows Formu kao na slici (Slika 21.1) iz postavke zadatka. Nakon toga, napraviti još jednu formu pod imenom frmLogovanje kao na slici (Slika: 21.2). (Na obe forme koristiti komponente i svojstva navedene u listi iznad).

 
Slika 21.2 – Izgled forme frmLogovanje

Potrebno je dodati globalnu promenljivu log koja je tipa frmLogovanje. To ćete uraditi ukoliko dopišete public frmLogovanje log odmah iznad osnovnog konstruktora kojeg Vam je VS 2008 automatski dodao (Pulic frmGlavna()) te u glavni kostruktor dodati jednu liniju koda kojom ćete povezati formu frmLogovanje za promenljivu log tako da glavni konstruktor forme frmGlavna treba izgledati ovako:

InitializeComponent();
log = new frmLogovanje();

Kod za Form Load handler (Akciju za Form Load dodajete duplim klikom na naslovnu traku forme):

edtNavigacija.Text = “https://www.its.edu.rs/”;
buttonNavigacija.PerformClick();

Kod za buttonNazad dugme, Click event (akciju za Click event buttonNazad dugmeta dodajete duplim klikom na kontrolu sa forme):

wbBrowser.GoBack();

Kod za buttonNapred dugme, Click event (akciju za Click event buttonNapred dugmeta dodajete duplim klikom na kontrolu sa forme):

wbBrowser.GoForward(); 

Kod za buttonStampaj dugme, Click event (akciju za Click event buttonStampaj dugmeta dodajete duplim klikom na kontrolu sa forme):

wbBrowser.Print(); 

Kod za buttonNavigacija dugme, Click event (akciju za Click event buttonNavigacija dugmeta dodajete duplim klikom na kontrolu sa forme):

wbBrowser.Navigate(edtNavigacija.Text);

Kod za buttonGmail dugme, Click event (akciju za Click event buttonGmail dugmeta dodajete duplim klikom na kontrolu sa forme):

edtNavigacija.Text = “http://www.gmail.com/”;
buttonNavigacija.PerformClick();

Kod za buttonIts dugme, Click event (akciju za Click event buttonIts dugmeta dodajete duplim klikom na kontrolu sa forme):

edtNavigacija.Text = “https://www.google.com/a/its.edu.rs/”;
buttonNavigacija.PerformClick();

Kod za buttonPgmail dugme, Click event (akciju za Click event buttonPgmail dugmeta dodajete duplim klikom na kontrolu sa forme):

log.Sifra.Select();
if (log.ShowDialog() == DialogResult.OK)
{
if (log.Sifra.Text == “ITS”)
{
HtmlDocument doc = wbBrowser.Document;
if (doc != null)
{
HtmlElement mail = doc.GetElementById(“Email”);
HtmlElement sifra = doc.GetElementById(“Passwd”);

try
{
if (mail != null) mail.InnerText = “ITS.Test”;
if (sifra != null) sifra.InnerText = “ITS”;
log.Sifra.Text = “”;
}
catch (Exception)
{
MessageBox.Show(“Nije moguce popuniti polja”, “Greska”, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
else MessageBox.Show(“Neispravna Sifra”);
}

Kod za buttonPits dugme, Click event (akciju za Click event buttonPits dugmeta dodajete duplim klikom na kontrolu sa forme):

log.Sifra.Select();
if (log.ShowDialog() == DialogResult.OK)
{
if (log.Sifra.Text == “ITS”)
{
HtmlDocument doc = wbBrowser.Document;
if (doc != null)
{
HtmlElement mail = doc.GetElementById(“Email”);
HtmlElement sifra = doc.GetElementById(“Passwd”);

try
{
if (mail != null) mail.InnerText = “ITS.Test”;
if (sifra != null) sifra.InnerText = “ITS”;
log.Sifra.Text = “”;
}
catch (Exception)
{
MessageBox.Show(“Nije moguce popuniti polja”, “Greska”, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
else MessageBox.Show(“Neispravna Sifra”);
}

Kod za edtNavigacija tekst polje, KeyPress event (akciju za KeyPress event edtNavigacija tekst polja dodajete kada na formi izaberete kontrolu, te odete u Events deo Properties prozora i uradite dupli klik na KeyPress deo):

if (e.KeyChar == Convert.ToChar(Keys.Enter) || e.KeyChar == Convert.ToChar(Keys.Return))
{
buttonNavigacija.PerformClick();
}

Da bi program bio kompletan, morate napraviti property kojim ćete omogućiti da frmGlavna pristupit tekst polju edtSifra forme frmLogovanje:

public TextBox Sifra
{
get
{
return edtSifra;
}
}

Kompletno resenje zadatka mozete da preuzmete ovde.