{"id":1509,"date":"2020-06-14T20:48:28","date_gmt":"2020-06-14T18:48:28","guid":{"rendered":"http:\/\/www.daniel.slask.pl\/?p=1509"},"modified":"2021-02-09T21:36:03","modified_gmt":"2021-02-09T20:36:03","slug":"tworzenie-tabeli-przy-uzyciu-textboxa-4","status":"publish","type":"post","link":"https:\/\/daniel.slask.pl\/m\/tworzenie-tabeli-przy-uzyciu-textboxa-4\/","title":{"rendered":"Tworzenie tabeli przy u\u017cyciu TextBoxa &#8211; #4"},"content":{"rendered":"\n<p><em><span style=\"text-decoration: underline;\">Kr\u00f3tki opis ca\u0142ego programu<\/span>:<\/em> Program do dynamicznego tworzenia tablicy z <em>TextBox<\/em>&#8217;\u00f3w o zadanej ilo\u015bci kom\u00f3rek, wraz z mo\u017cliwo\u015bci\u0105 zmiany niekt\u00f3rych w\u0142a\u015bciwo\u015bci wybranych kom\u00f3rek.<\/p>\n\n\n\n<p><em><span style=\"text-decoration: underline;\">Co tym razem<\/span><\/em>: Zmiana w\u0142a\u015bciwo\u015bci danej kom\u00f3rki poprzez menu kontekstowe &#8211; po klikni\u0119ciu PPM na dan\u0105 kom\u00f3rk\u0119.<\/p>\n\n\n\n<p><a href=\"http:\/\/www.daniel.slask.pl\/?p=1474\">Poprzednio zmieniali\u015bmy<\/a> kolor tekstu i t\u0142a poprzez wybranie koloru po klikni\u0119ciu w &#8222;statyczny&#8221; <em>textbox<\/em>. Tym razem zr\u00f3bmy zmian\u0119 koloru, kt\u00f3ra b\u0119dzie mo\u017cliwa po wybraniu kom\u00f3rki i klikni\u0119ciu PPM (prawy przycisk myszy). Otworzy nam si\u0119 wtedy menu kontekstowe w kt\u00f3rym b\u0119dzie mo\u017cna wybra\u0107 zmian\u0119 koloru lub tekstu w wybranej kom\u00f3rce. <br>Tym razem b\u0119dzie nieco kr\u00f3cej \u2013 nie b\u0119d\u0119 omawia\u0142 szczeg\u00f3\u0142owo jak okre\u015blam dane zdarzenia, b\u0105d\u017a jak szukam informacji. Zosta\u0142o to przedstawione w 3 poprzednich wpisach.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-2-150x150.png\" alt=\"\" data-id=\"1515\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-2.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1515\" class=\"wp-image-1515\"\/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-1-150x150.png\" alt=\"\" data-id=\"1516\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-1.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1516\" class=\"wp-image-1516\"\/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Aby to by\u0142o mo\u017cliwe najpierw nale\u017cy okre\u015bli\u0107 kt\u00f3r\u0105 kom\u00f3rk\u0119 wskazuje wska\u017anik myszy. W tym celu wykorzystamy zdarzenie, ale od wskazania myszk\u0105 \u2013 nazywa si\u0119 ono <em>MouseEnter<\/em>. Dla test\u00f3w zr\u00f3bmy sobie wy\u015bwietlanie nazwy kom\u00f3rki w <em>textbox <\/em>po najechaniu na ni\u0105 myszk\u0105 (podobnie jak to by\u0142o w poprzednim <a href=\"http:\/\/www.daniel.slask.pl\/?p=1474\">przypadku <\/a>ale po klikni\u0119ciu na ni\u0105). Kod kt\u00f3ry b\u0119dzie umo\u017cliwia\u0142 wypisanie nazwy kom\u00f3rki kt\u00f3r\u0105 wskazuje myszka jest bardzo podobny do tego z poprzedniego <a href=\"http:\/\/www.daniel.slask.pl\/?p=1474\">wpisu<\/a>, b\u0119dziemy jednak przepisywa\u0107 wska\u017anik na dany obiekt do innej zmiennej:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">private void textBox_MouseEnter(object sender, EventArgs e)\n{\n\tsend = sender;\n\ttextBox_ktora.Text = (sender as TextBox).Name;\n}<\/code><\/pre>\n\n\n\n<p>Kompilujemy i uruchamiamy program. Po utworzeniu tabeli i najechaniu na ni\u0105 myszk\u0105 powinna pojawi\u0107 si\u0119 nazwa kom\u00f3rki w naszym <em>textboxie<\/em>.<\/p>\n\n\n\n<p>Dodajemy wi\u0119c obs\u0142ug\u0119 zdarzenia od najechania na kom\u00f3rk\u0119:<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">\/\/zdarzenie dla najechania przycisku\nntextbox.MouseEnter += textBox_MouseEnter;<\/code><\/pre>\n<\/div><\/div>\n\n\n\n<p>Jak ju\u017c mamy kom\u00f3rk\u0119 kt\u00f3ra wskazuje myszk\u0119, to teraz kolej na utworzenie menu kontekstowego po klikni\u0119ciu PPM. Najpierw dodajmy kontrolk\u0119 menu kontekstowego \u2013 <em>ContextMenuStrip <\/em>w kategorii <em>Menu i paski narz\u0119dzi<\/em>. Po przeniesieniu na nasz\u0105 formatk\u0119 mo\u017cemy w niej umie\u015bci\u0107 r\u00f3\u017cnego rodzaju pola \u2013 a\u017c 4. Na nasze potrzeby b\u0119d\u0105 to pola <em>textbox <\/em>opisane jako Zmie\u0144 kolor t\u0142a i Zmie\u0144 kolor tekstu. Mamy ju\u017c utworzone menu kontekstowe to teraz musimy jako\u015b spowodowa\u0107 pojawienie si\u0119 go po klikni\u0119ciu PPM na wybranym <em>textboxie<\/em>. We w\u0142a\u015bciwo\u015bciach kontrolki np. <em>textbox <\/em>jest taka w\u0142a\u015bciwo\u015b\u0107 jak <em>ContextMenuStrip <\/em>&#8211; znajduje si\u0119 ona w kategorii <em>zachowanie<\/em>. Spr\u00f3bujmy na dowolnym \u201estatycznie\u201d utworzonym obiekcie doda\u0107 meny kontekstowe i sprawdzi\u0107 czy dzia\u0142a. Po kompilacji i uruchomieniu programu klikamy PPM na wybrany obiekt \u2013 powinno pojawi\u0107 si\u0119 nasze menu kontekstowe.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-3-150x150.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-3-150x150.png\" alt=\"\" data-id=\"1518\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1518\" class=\"wp-image-1518\"\/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-4-150x150.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-4-150x150.png\" alt=\"\" data-id=\"1517\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1517\" class=\"wp-image-1517\"\/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-5-150x150.png\" alt=\"\" data-id=\"1520\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-5.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1520\" class=\"wp-image-1520\"\/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Pewnie si\u0119 ju\u017c domy\u015blacie co teraz nale\u017cy zrobi\u0107 \u2013 musimy doda\u0107 takie menu do ka\u017cdej naszej kom\u00f3rki, kt\u00f3ra jest tworzona dynamicznie. Dla podpowiedzi \u2013 bo ju\u017c powinni\u015bcie to wiedzie\u0107 \u2013 sprawdzimy jak Visual Studio dodaje takie menu do kontrolki i podobnie dodamy j\u0105 do naszej kontrolki. Po uruchomieniu programu, utworzeniu tabeli i klikni\u0119ciu PPM na dan\u0105 kom\u00f3rk\u0119 tablicy powinno pojawi\u0107 si\u0119 nasze menu. Dodanie menu kontekstowego do ka\u017cdej nowo utworzonej kom\u00f3rki przedstawia si\u0119 nast\u0119puj\u0105co:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">\/\/dodanie menu kontekstowego\nntextbox.ContextMenuStrip = contextMenuStrip1;<\/code><\/pre>\n\n\n\n<p>Gdy ju\u017c pojawi si\u0119 menu po klikni\u0119ciu PPM na danej kom\u00f3rce, nale\u017cy wykona\u0107 jeszcze 2 rzeczy \u2013 spowodowa\u0107 otwarcie okienka umo\u017cliwiaj\u0105cego wyb\u00f3r koloru, oraz ustawienie wybranego kolor we wskazanej wcze\u015bniej kom\u00f3rce. B\u0119dzie to bardzo podobne jak w poprzednio rozwa\u017canym przypadku. Aby doda\u0107 obs\u0142ug\u0119 danego przycisku w menu strip nale\u017cy na niego dwa razy klikn\u0105\u0107. W zdarzeniu od klikni\u0119cia dodajemy funkcje kt\u00f3re spowoduj\u0119 zmian\u0119 koloru tekstu lub t\u0142a, podobnie jak to mia\u0142o miejsce w poprzednim wpisie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">private void toolStripTextBox1_Click(object sender, EventArgs e)\n{\n\tif (colorDialog1.ShowDialog() == DialogResult.OK)\n\t{\n\t\tkolor_tla = colorDialog1.Color;\n\t\ttextBox_tlo.BackColor = kolor_tla;\n\t\ttextBox_tekst.BackColor = kolor_tla;\n\t\t(send_enter as TextBox).BackColor = kolor_tla;\n\t}\n}\nprivate void toolStripTextBox_tekst_Click(object sender, EventArgs e)\n{\n\tif (colorDialog1.ShowDialog() == DialogResult.OK)\n\t{\n\t\tkolor_tekstu = colorDialog1.Color;\n\t\ttextBox_tlo.ForeColor = kolor_tekstu;\n\t\ttextBox_tekst.ForeColor = kolor_tekstu;\n\t\t(send_enter as TextBox).ForeColor = kolor_tekstu;\n\t}\n}<\/code><\/pre>\n\n\n\n<p>Mo\u017cna r\u00f3wnie\u017c przypisa\u0107 do zdarzenia od klikni\u0119cia t\u0105 sam\u0105 metod\u0119, ale w tedy nale\u017cy jeszcze odpowiednio zmodyfikowa\u0107 kod, aby po zmianie koloru automatycznie zmienia\u0142 si\u0119 kolor, a nie dopiero po wci\u015bni\u0119ciu przycisku. <\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-8-150x150.png\" alt=\"\" data-id=\"1521\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-8.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1521\" class=\"wp-image-1521\"\/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-6-150x150.png\" alt=\"\" data-id=\"1522\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-6.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1522\" class=\"wp-image-1522\"\/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-7-150x150.png\" alt=\"\" data-id=\"1523\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_4-7.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1523\" class=\"wp-image-1523\"\/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Sprawd\u017amy teraz dzia\u0142anie naszego programu \u2013 kompilujemy i uruchamiamy go. Po wybraniu kom\u00f3rki PPM i okre\u015bleniu koloru np. t\u0142a powinno si\u0119 ono zmieni\u0107. Dodatkowo zostawili\u015bmy poprzedni kod, co skutkuje tym, \u017ce po wybraniu LPM danej kom\u00f3rki i wci\u015bni\u0119ciu przycisku zmie\u0144 zostanie zmieniony kolor na taki jak zosta\u0142 wcze\u015bniej ustawiony.<\/p>\n\n\n\n<p>Teraz mo\u017cemy zmieni\u0107 kolor tekstu i t\u0142a PPM oraz po wskazaniu LPM danej kom\u00f3rki i naci\u015bni\u0119ciu przycisku ustaw.<\/p>\n\n\n\n<p>Na tym ko\u0144czymy. Poni\u017cej jak zwykle mo\u017cna pobra\u0107 ca\u0142y projekt.<\/p>\n\n\n\n<a  data-e-Disable-Page-Transition=\"true\" class=\"download-link download-button aligncenter\" title=\"\" href=\"https:\/\/daniel.slask.pl\/m\/download\/1485\/?tmstv=1776524136\" rel=\"nofollow\" id=\"download-link-1485\" >\n\t<p>\n\t\tPobierz &ldquo;CS19_N01_tabela_4&rdquo;\t<\/p>\n\t<small>CS19_N01_tabela_4.zip\t\t&ndash; Pobrano 215 razy\t\t&ndash; 77,97 KB<\/small>\n<\/a>\n","protected":false},"excerpt":{"rendered":"<p>Kr\u00f3tki opis ca\u0142ego programu: Program do dynamicznego tworzenia tablicy z TextBox&#8217;\u00f3w o zadanej ilo\u015bci kom\u00f3rek, wraz z mo\u017cliwo\u015bci\u0105 zmiany niekt\u00f3rych w\u0142a\u015bciwo\u015bci wybranych kom\u00f3rek. Co tym razem: Zmiana w\u0142a\u015bciwo\u015bci danej kom\u00f3rki poprzez menu kontekstowe &#8211; po klikni\u0119ciu PPM na dan\u0105 kom\u00f3rk\u0119&#8230;.<br \/><a class=\"read-more-button\" href=\"https:\/\/daniel.slask.pl\/m\/tworzenie-tabeli-przy-uzyciu-textboxa-4\/\">Wi\u0119cej<\/a><\/p>\n","protected":false},"author":1,"featured_media":1349,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[61,8,59],"tags":[192,217,191,216,215,193],"views":267,"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/daniel.slask.pl\/m\/wp-content\/uploads\/2020\/04\/Csh.png","jetpack_shortlink":"https:\/\/wp.me\/pcPgV3-ol","_links":{"self":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1509"}],"collection":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/comments?post=1509"}],"version-history":[{"count":8,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1509\/revisions"}],"predecessor-version":[{"id":1607,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1509\/revisions\/1607"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/media\/1349"}],"wp:attachment":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/media?parent=1509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/categories?post=1509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/tags?post=1509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}