Przesyłanie komunikatu zwrotnego
Cel: Napisz aplikację, która zwróci komunikat o pozycji górnego lewego rogu formatki oraz prześle tekst wprowadzony z klawiatury do paska stanu lub okna dialogowego
Krok 1: Układ komponentów
W projekcie użyjemy poniższych komponentów
- Label- sztuk 1
- TextBox- sztuk 1
- Button- sztuk 4
- StatusStrip- sztuk 1

W komponent StatusStrip osadzimy dwa wewnętrzne typy tego komponentu. Będą to komponenty ToolStripStatusLabel. Poniższy rysunek ilustruje jak to zrobić

Komponenty ToolStripStatusLabel oddzielmy od siebie prostym zabiegiem poprzez dodanie na przykład z prawej strony komponentu ToolStripStatusLabel1 obramowania. Wykonamy to przez zmianę parametrów właściwości BorderSides (patrz ilustracja)
Po skompilowaniu projektu w dolnej części formatki będzie widoczny pionowy separator oddzielający komponenty ToolStripStatusLabel

Krok 3. Odczyt współrzędnych ekranowych aplikacji
Informację o bieżących współrzędnych ekranowych głównego okna aplikacji wyślemy do komponentu ToolStripStatusLabel1. Komunikat zmiany współrzędnych ekranowych aplikacji uzyskamy w zdarzeniu LocationChanged formatki. Odszukamy to zdarzenie w oknie Właściwości i je zainicjujemy przez szybkie dwukrotne kliknięcie lewym klawiszem myszki

Parametr Left i Top formatki Form1 przechowuje informację o współrzędnych okna aplikacji. Wystarczy, że odczytamy je i wyślemy na ekran, konkretnie w dolny lewy narożnik naszego projektu. Z racji tego, że dane te są typu Int musimy wykonać konwersję typu całkowitego (Int) na typ łańcuchowy (String). Pokazuje to poniższa instrukcja
private void Form1_LocationChanged(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = "x: "+this.Left.ToString()+"; y: "+this.Top.ToString();
}
Kompilujemy i uruchamiamy program. Jeżeli mamy wszytko prawidłowo wykonane, to podczas przesuwania aplikacji po ekranie monitora będziemy widzieć w dolnym lewym rogu bieżącą pozycję górnego lewego rogu formatki

Krok 4. Wysłanie tekstu z komponentu TextBox do komponentu ToolStripStatusLabel
Czynność wysłania tekstu z komponentu TextBox do komponentu ToolStripStatusLabel wykonamy przy użyciu zdarzenia Click komponentu Button.
Komponent TextBox umożliwia przechwytywanie znaków z klawiatury, co oznacza, że możemy w nim pisać jeżeli jest w stanie edycji. Efekt wykonania tego kroku pokazuje poniższa ilustracja

Aby było to możliwe funkcja Click komponentu Button powinna zawierać poniższą instrukcję przypisania tekstu
private void Button1_Click(object sender, EventArgs e)
{
toolStripStatusLabel2.Text = textBox1.Text;
}
Krok 5. Wysłanie tekstu do okna dialogowego
Standardowe okno dialogowe systemu Window's uzyskamy wywołując czteroparametrową funkcję Show klasy MessageBox. Pierwszy parametr jest odpowiedzialny za treść komunikatu, drugi jest tytułem okna dialogowego, trzeci parametr związany jest z klawiszami okna dialogowego (na przykład MessageBoxButtons.OK), a czwarty z widoczną ikoną dialogu systemu Window's (na przykład MessageBoxIcon.Information).

Zdarzenie Click naszego przycisku powinno zawierać poniższą instrukcję
private void Button2_Click(object sender, EventArgs e)
{
MessageBox.Show(textBox1.Text, "Komunikat", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Wykorzystując znacznik \n lub polecenie System.Environment.NewLine w łańcuchu znaków możemy dzielić łańcuch na nowe linie tekstowe (nowe wiersze)
Ćwiczenie sprawdzające
Wykorzystując okno dialogowe systemu Window's wyświetl komunikat zawierający bieżące współrzędne głównego okna utworzonej aplikacji.
