{"id":1525,"date":"2020-08-23T21:22:00","date_gmt":"2020-08-23T19:22:00","guid":{"rendered":"http:\/\/www.daniel.slask.pl\/?p=1525"},"modified":"2020-10-10T22:25:23","modified_gmt":"2020-10-10T20:25:23","slug":"tworzenie-tabeli-przy-uzyciu-textboxa-5","status":"publish","type":"post","link":"https:\/\/daniel.slask.pl\/m\/tworzenie-tabeli-przy-uzyciu-textboxa-5\/","title":{"rendered":"Tworzenie tabeli przy u\u017cyciu TextBoxa \u2013 #5"},"content":{"rendered":"\n<p><em><span style=\"text-decoration: underline;\">Kr\u00f3tki opis ca\u0142ego programu:<\/span><\/em> 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.<\/p>\n\n\n\n<p><em><span style=\"text-decoration: underline;\">Co tym razem<\/span><\/em>: Inkrementacja warto\u015bci w wybranych kom\u00f3rkach tabeli &#8211; opcja dost\u0119pna w menu kontekstowym.<\/p>\n\n\n\n<p>Do menu kontekstowego, kt\u00f3re utworzyli\u015bmy w poprzednim <a href=\"http:\/\/www.daniel.slask.pl\/?p=1509\">wpisie<\/a>, dodamy tym razem automatyczn\u0105 inkrementacj\u0119 warto\u015bci co 1s dla wybranych kom\u00f3rek. Dodajemy wi\u0119c do menu kontekstowego opcj\u0119 <em>toolStripMenuItem <\/em>i nazywaj\u0105 j\u0105 Inkrementacja. Wchodzimy do obs\u0142ugi tego przycisku. W metodzie tej utworzymy kod, kt\u00f3ry b\u0119dzie automatycznie dodawa\u0142 dan\u0105 kom\u00f3rk\u0119 do listy kom\u00f3rek, w kt\u00f3rych ma si\u0119 zwi\u0119ksza\u0107 jaka\u015b warto\u015b\u0107. Aby tego dokona\u0107 &nbsp;utworzymy najpierw tablic\u0119, kt\u00f3rej wielko\u015b\u0107 b\u0119dzie zale\u017cna od ilo\u015bci utworzonych kom\u00f3rek w tabeli, natomiast b\u0119dzie ona typu w\u0142asnego &#8211; tzn. utworzymy struktur\u0119 <em>Liczydlo<\/em>, kt\u00f3ra b\u0119dzie zawiera\u0142a trzy&nbsp; pozycje. Pierwsza b\u0119dzie wska\u017anikiem do naszej kom\u00f3rki, druga b\u0119dzie warto\u015bci\u0105 inkrementowan\u0105, a trzecia czy dana kom\u00f3rka ma zwi\u0119ksza\u0107 swoj\u0105 warto\u015b\u0107:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">struct liczydlo{\n\tpublic object cells;\n\tpublic Int32 nr;\n\tpublic bool active;\n}\n\n\/\/tablica dynamiczna\nliczydlo[] licz;<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-gallery aligncenter columns-2 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_5-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-1-150x150.png\" alt=\"\" data-id=\"1530\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-1.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1530\" class=\"wp-image-1530\"\/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-2-150x150.png\" alt=\"\" data-id=\"1529\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-2.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1529\" class=\"wp-image-1529\"\/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Liczb\u0119 kom\u00f3rek tej tabeli b\u0119dziemy okre\u015bla\u0107 podczas tworzenia tablicy:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">\/\/tablica dynamiczna\nlicz = new liczydlo[liczba_komorek];<\/code><\/pre>\n\n\n\n<p>Klikaj\u0105c PPM i wybieraj\u0105c inkrementacj\u0119, b\u0119dziemy aktywowa\u0107, b\u0105d\u017a dezaktywowa\u0107 automatyczne zwi\u0119kszanie warto\u015bci. Dodajemy wi\u0119c do kodu tego przycisku (inkrementacja w menu kontekstowym), kod kt\u00f3ry b\u0119dzie powodowa\u0142 aktywacj\u0119 tej czynno\u015bci:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">private void toolStripTextBox_ink_Click(object sender, EventArgs e)\n{\n\tif (!licz[nr_mouse_enter].active)\n\t{\n\t\tlicz[nr_mouse_enter].active = true;\n\t}\n\telse\n\t{\n\t\tlicz[nr_mouse_enter].active = false;\n\t}\n}<\/code><\/pre>\n\n\n\n<p>Dodatkowo uzupe\u0142niamy kod, kt\u00f3ry odpowiada\u0142 za obs\u0142ug\u0119 zdarzenia od najechania na element myszk\u0105 o zapisanie numeru indeksu elementu kt\u00f3ry zosta\u0142 wskazany do utworzonej wcze\u015bniej tablicy. Uzupe\u0142niamy go o nast\u0119puj\u0105ce linijki (pierwsza linijka jest utworzona na zadanie do was &#8211; zmodyfikujcie tak program, aby po najechaniu na kom\u00f3rk\u0119 i klikni\u0119ciu dzia\u0142o si\u0119 to samo co teraz, ale bez udzia\u0142u linijki drugiej \ud83d\ude09 ):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">nr_mouse_enter = (sender as TextBox).TabIndex;\nlicz[nr_mouse_enter].cells = sender; \/ \/przypisanie odpowiedniej kom\u00f3rki do tablicy<\/code><\/pre>\n\n\n\n<p>Gdy ju\u017c to mamy kompilujemy program i uruchamiamy go w celu sprawdzenia czy wszystko przebieg\u0142o pomy\u015blnie czy gdzie\u015b nie pope\u0142nili\u015bmy jakiego\u015b prostego b\u0142\u0119du. Gdy wszystko jest ok, przechodzimy dalej.<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter columns-2 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_5-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-4-150x150.png\" alt=\"\" data-id=\"1532\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-4.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1532\" class=\"wp-image-1532\"\/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-3-150x150.png\" alt=\"\" data-id=\"1533\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-3.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1533\" class=\"wp-image-1533\"\/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>Jak ju\u017c to mamy, to teraz musimy wykona\u0107 automatyczne zwi\u0119kszanie liczb co 1s. W tym celu wykorzystamy timer, kt\u00f3ry umo\u017cliwia nam wykonywanie r\u00f3\u017cnych czynno\u015bci co okre\u015blony czas. Znajduje si\u0119 on w kategorii Sk\u0142adniki naszego przybornika. Przenosimy go na nasz\u0105 formatk\u0119 i ustawiamy w\u0142a\u015bciwo\u015b\u0107 <em>Interval <\/em>na 1000 &#8211; warto\u015b\u0107 podajemy w <em>ms<\/em>. Nast\u0119pnie nale\u017cy do zdarzenia <em>Tick <\/em>kt\u00f3re b\u0119dzie generowane co 1s doda\u0107 kod powoduj\u0105cy sprawdzenie czy w danej kom\u00f3rce ma zosta\u0107 zwi\u0119kszona warto\u015b\u0107 i nale\u017cy j\u0105 zwi\u0119kszy\u0107.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">private void timer1_Tick(object sender, EventArgs e)\n{\n\tint i = 0;\n\n\tfor (i = 0; i &lt; liczba_komorek; i++)\n\t{\n\t\tif (licz[i].active)\n\t\t{\n\t\t\tlicz[i].nr++;\n\t\t\t(licz[i].cells as TextBox).Text = licz[i].nr.ToString();\n\t\t}\n\t}\n}<\/code><\/pre>\n\n\n\n<p>Przed uruchomieniem programu ustawmy warto\u015b\u0107 0 we wszystkich kom\u00f3rkach jako warto\u015b\u0107 pocz\u0105tkowa w naszej tabeli, oraz aktywowa\u0107 Timera (ustawi\u0107 <em>enabled <\/em>na <em>true <\/em>w jego w\u0142a\u015bciwo\u015bciach):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"csharp\" class=\"language-csharp line-numbers\">\/\/wpisanie pocz\u0105tkowej warto\u015bci\nntextbox.Text = \"0\";<\/code><\/pre>\n\n\n\n<p>Kompilujemy i uruchamiamy program. Tworzymy tabel\u0119 i aktywujemy zliczanie w wybranych kom\u00f3rkach. Jak mo\u017cna zauwa\u017cy\u0107 mo\u017cemy aktywowa\u0107 i dezaktywowa\u0107 zliczanie w danej kom\u00f3rce (nie tylko jednej), a po ponownym aktywowaniu zliczanie nie jest rozpoczynane od nowa tylko jest kontynuowane dalej.<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter columns-1 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_5-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-5-150x150.png\" alt=\"\" data-id=\"1534\" data-full-url=\"http:\/\/www.daniel.slask.pl\/m\/wp-content\/uploads\/2020\/05\/Textbox_5-5.png\" data-link=\"http:\/\/www.daniel.slask.pl\/?attachment_id=1534\" class=\"wp-image-1534\"\/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>I to by\u0142oby raczej wszystko. Na chwil\u0119 obecn\u0105 nie przewiduj\u0119 dodatkowych wpis\u00f3w poszerzaj\u0105cych dzia\u0142anie programu.<\/p>\n\n\n\n<p>Wybaczcie je\u017celi w kt\u00f3rym\u015b momencie pope\u0142ni\u0142em b\u0142\u0119dy merytoryczne &#8211; prosz\u0119 o wskazanie ich abym m\u00f3g\u0142 je poprawi\u0107.<\/p>\n\n\n\n<p>Zach\u0119cam r\u00f3wnie\u017c do komentowania.<\/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\/1488\/?tmstv=1788163203\" rel=\"nofollow\" id=\"download-link-1488\" >\n\t<p>\n\t\tPobierz &ldquo;CS19_N01_tabela_5&rdquo;\t<\/p>\n\t<small>CS19_N01_tabela_5.zip\t\t&ndash; Pobrano 311 razy\t\t&ndash; 79,84 KB<\/small>\n<\/a>\n\n\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: Inkrementacja warto\u015bci w wybranych kom\u00f3rkach tabeli &#8211; opcja dost\u0119pna w menu kontekstowym. Do menu&#8230;<br \/><a class=\"read-more-button\" href=\"https:\/\/daniel.slask.pl\/m\/tworzenie-tabeli-przy-uzyciu-textboxa-5\/\">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,216,215,193],"views":343,"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-oB","_links":{"self":[{"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1525"}],"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=1525"}],"version-history":[{"count":8,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1525\/revisions"}],"predecessor-version":[{"id":1634,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/posts\/1525\/revisions\/1634"}],"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=1525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/categories?post=1525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.slask.pl\/m\/wp-json\/wp\/v2\/tags?post=1525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}