﻿
{"id":1796,"date":"2013-07-03T01:00:48","date_gmt":"2013-07-03T01:00:48","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=1796"},"modified":"2013-08-26T22:08:40","modified_gmt":"2013-08-26T22:08:40","slug":"cta-textbox-ve-listbox-ile-suggest-yapisi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/cta-textbox-ve-listbox-ile-suggest-yapisi\/","title":{"rendered":"C#&#8217;ta TextBox ve ListBox \u0130le Suggest Yap\u0131s\u0131"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bug\u00fcn bir arkada\u015f\u0131m taraf\u0131ndan istenen, C#&#8217;ta TextBox ve ListBox nesnelerini kullanarak Suggest yap\u0131s\u0131n\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 sizlerle payla\u015faca\u011f\u0131m.<br \/>\n<!--more--><br \/>\nMevzu \u015fundan ibaret, formumuzda birer TextBox ve ListBox nesnelerinin mevcut oldu\u011funu d\u00fc\u015f\u00fcnelim.TextBox&#8217;a yaz\u0131lan her de\u011fer i\u00e7in arkaplandaki veri kayna\u011f\u0131nda arama ger\u00e7ekle\u015fecek ve ListBox nesnemizde o de\u011fere en uygun veriler listelenecektir.Yani bildi\u011finiz Google amcadaki Suggest yap\u0131s\u0131n\u0131n C# versiyonunu olu\u015fturaca\u011f\u0131z.<\/p>\n<p>\u00d6ncelikle formumuzun g\u00f6r\u00fcnt\u00fcs\u00fc a\u015fa\u011f\u0131daki gibi olacakt\u0131r.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/07\/CSuggest.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2013\/07\/CSuggest.png\" alt=\"C#Suggest\" width=\"230\" height=\"217\" class=\"aligncenter size-full wp-image-1797\" \/><\/a><\/p>\n<p>Gerekli C# kodlar\u0131m\u0131zda a\u015fa\u011f\u0131da g\u00f6z\u00fckt\u00fc\u011f\u00fc gibi olacakt\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        List&lt;string&gt; Veriler = new List&lt;string&gt; { &quot;Ahmet&quot;,&quot;Ali&quot;,&quot;Ay\u015fe&quot;,&quot;Asl\u0131&quot;, &quot;Mehmet&quot;,&quot;Melih&quot;,&quot;Metin&quot;, &quot;Hilmi&quot;,&quot;Hakan&quot;,&quot;H\u00fcdaverdi&quot;, &quot;Necati&quot;\r\n            ,&quot;Necmettin&quot;, &quot;H\u00fcseyin&quot;, &quot;Niyazi&quot;, &quot;Naci&quot;, &quot;Bilmemne&quot;, &quot;asda&quot; };\r\n        \/\/Veri kayna\u011f\u0131m\u0131z.\r\n\r\n        private void textBox1_TextChanged(object sender, EventArgs e)\r\n        {\r\n            \/*TextChanged olay\u0131nda \u00e7al\u0131\u015fmam\u0131z\u0131n sebebi, TextBox nesnemizin de\u011feri her\r\n            tetiklendi\u011finde farkl\u0131 karakterlere sahip olaca\u011f\u0131ndan dolay\u0131d\u0131r.*\/\r\n            listBox1.DataSource = null;\r\n            \/*Bu olay her tetiklendi\u011finde ListBox nesnemizin\r\n            DataSource \u00f6zelli\u011fine null de\u011feri veriyoruz.\r\n             Bunun sebebi her tetiklenme an\u0131nda a\u015fa\u011f\u0131daki\r\n             ListelenecekVeriler isimli koleksiyonumuzun\r\n             farkl\u0131 verilerle dolmas\u0131ndand\u0131r.*\/\r\n            int Harf = 0;\r\n            string Harfler = &quot;&quot;;\r\n            List&lt;string&gt; ListelenecekVeriler = new List&lt;string&gt;();\r\n            for (int i = 0; i &lt; textBox1.Text.Length; i++)\r\n            {\r\n                Harfler += textBox1.Text&#x5B;Harf].ToString();\r\n                Harf++;\r\n                for (int j = 0; j &lt; Veriler.Count; j++)\r\n                {\r\n                    if (i == textBox1.Text.Length - 1)\r\n                    {\r\n                        bool Durum = Veriler&#x5B;j].StartsWith(Harfler);\r\n                        if (Durum)\r\n                            ListelenecekVeriler.Add(Veriler&#x5B;j]);\r\n                    }\r\n                }\r\n            }\r\n            \/*\r\n             Yukar\u0131daki i\u00e7 i\u00e7e iki d\u00f6ng\u00fcy\u00fc incelerseniz e\u011fer\r\n             TextBox nesnemize yaz\u0131lan de\u011ferleri\r\n             gerekli algoritma sayesinde Veriler isimli\r\n             koleksiyonumuzla kar\u015f\u0131la\u015ft\u0131r\u0131yor ve\r\n             kar\u015f\u0131la\u015ft\u0131rma sonucuna uyan verileri\r\n             ListBox nesnemize kaynak olarak vermek i\u00e7in\r\n             ListelenecekVeriler isimli koleksiyonumuzda topluyor.\r\n             *\/\r\n            listBox1.DataSource = ListelenecekVeriler;\r\n            ListelenecekVeriler.Clear();\r\n        }\r\n<\/pre>\n<p>Umar\u0131m programatik kodlar\u0131 incelerken algoritmik yap\u0131y\u0131 takip edebilirsiniz.C#&#8217;ta Suggest ListBox nesnesi d\u0131\u015f\u0131nda koleksiyon mant\u0131\u011f\u0131yla \u00e7al\u0131\u015fan herhangi bir nesneyle de ger\u00e7ekle\u015ftirebilirsiniz.Lakin sizlere \u015f\u00f6yle bir bilgi daha vermek isterim.DataView ve DataGridView nesnelerini kullanarak, T-SQL deki &#8220;Like&#8221; mant\u0131\u011f\u0131yla \u00e7al\u0131\u015fan bir Suggest yap\u0131s\u0131na benzer \u00e7al\u0131\u015fmada ger\u00e7ekle\u015ftirebilirsiniz.Bu konu hakk\u0131nda <a href=\"http:\/\/www.gencayyildiz.com\/blog\/ado-net-dataview-nesnesi\/\" target=\"_blank\">ADO.NET &#8211; DataView Nesnesi<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131mdan faydalanabilirsiniz.<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fcmidiyle..<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar dilerim..<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Bug\u00fcn bir arkada\u015f\u0131m taraf\u0131ndan istenen, C#&#8217;ta TextBox ve ListBox nesnelerini kullanarak Suggest yap\u0131s\u0131n\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 sizlerle payla\u015faca\u011f\u0131m.<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,338],"tags":[27,253,73,39,254,59],"class_list":["post-1796","post","type-post","status-publish","format-standard","hentry","category-c-sharp-c","category-c-5-0","tag-c","tag-google","tag-like","tag-listbox","tag-suggest","tag-textbox"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/1796","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=1796"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/1796\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=1796"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=1796"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=1796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}