偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#記憶功能的地址欄控件

開發(fā) 后端
本文描述了如何建立一個(gè)簡(jiǎn)單的、常用的用戶控件——地址欄控件。你只需要輸入部分字符,它在其下拉列表框中,就顯示出來與你所輸入相關(guān)的內(nèi)容。

C#記憶功能的地址欄控件

今天在做搜索引擎的資料準(zhǔn)備,無(wú)意見到了cocosoft的文章,于是,按照原文一步一步,做了下來,運(yùn)行后,感覺挺不錯(cuò)的,跟我前面寫過的c#讀取網(wǎng)頁(yè)有些相識(shí),但多了個(gè)地址欄控件的記憶功能.

本文描述了如何建立一個(gè)簡(jiǎn)單的、常用的用戶控件——地址欄控件。
你只需要輸入部分字符,它在其下拉列表框中,就顯示出來與你所輸入相關(guān)的內(nèi)容(記憶功能)。

如果只要求輸入字符串就可以的話。那么,我們可以直接使用TextBox等控件完成輸入框。但如果你要讓你的輸入框有記憶功能的話。那么,我們所需要的就是要求能把以前所輸入的內(nèi)容讀取出來。

我們從下面開始講解如何讓我們的地址欄控件有記憶功能的。

建立自己的地址欄:
首先,我們要分兩步走。
第一步,我們首先要明白我們IE地址欄的歷史記憶內(nèi)容是從哪來的。因?yàn)橹挥兄浪菑哪膩淼?,我們才能明白我們的?shù)據(jù)。
先看一下,IE在regedit(注冊(cè)表)里面都有些什么內(nèi)容。因?yàn)閞egeidt是Windows里面一個(gè)非常不錯(cuò)的數(shù)據(jù)庫(kù),它可以把整臺(tái)機(jī)子相關(guān)的一些東西都存放在里面。
在regedit里面,與IE相關(guān)的內(nèi)容有這些:
我們要的是“Software\Microsoft\Internet Explorer\TypedURLs”的數(shù)據(jù)。不然,我們寫的記憶功能就起不了什么作用了。或者,出現(xiàn)一些其它數(shù)據(jù)。要知道,在regedit里面保存的數(shù)據(jù)可都是一些關(guān)鍵數(shù)據(jù)。如果一不小心被人XX掉的話,那么,L。
OK,現(xiàn)在已經(jīng)找到我們要的數(shù)據(jù)是從什么地方來的了。那么,我們就要開始打造我們自己的帶C#記憶功能的地址欄控件了。
那么,達(dá)到這些夠了嗎?當(dāng)然,夠是夠了。但,你不想讓你的地址欄功能再?gòu)?qiáng)大一點(diǎn)嗎?那么,我們寫這樣的一個(gè)類來看看:

1、新建項(xiàng)目,選擇新建類庫(kù),名字就順意了。比如:ControlSet.URLControl。
2、在資源管理里面添加引用System.Windows.Forms.dll。
3、然后,在資源管理器里面把Class1.cs改為UnManagedMethods.cs,然后,用下面的代碼替換:

  1. usingSystem;  
  2. usingSystem.Runtime.InteropServices;  
  3. namespaceControlSet.URLControl  
  4. {  
  5. [StructLayout(LayoutKind.Sequential)]  
  6. internalstructRect  
  7. {  
  8. publicintleft;  
  9. publicinttop;  
  10. publicintright;  
  11. publicintbottom;  
  12. }  
  13. [StructLayout(LayoutKind.Sequential)]  
  14. internalstructComboBoxInfo  
  15. {  
  16. publicintcbSize;  
  17. publicRectrcItem;  
  18. publicRectrcButton;  
  19. publicIntPtrstateButton;  
  20. publicIntPtrhwndCombo;  
  21. publicIntPtrhwndEdit;  
  22. publicIntPtrhwndList;  
  23. }  
  24. ///<summary> 
  25. ///AllunmanagedDllImportmethodsusedinthisassembly  
  26. ///</summary> 
  27. internalclassUnManagedMethods  
  28. {  
  29. [DllImport("User32.dll")]  
  30. internalstaticexternboolGetComboBoxInfo
    (IntPtrhwndCombo,refComboBoxInfoinfo);  
  31. [DllImport("Shlwapi.dll")]  
  32. internalstaticexternvoidSHAutoComplete(IntPtrhwnd,IntPtrflags);  
  33. }  

第二步,我們的地址欄出現(xiàn)了。那么,要用什么做為它的基控件呢?

因?yàn)槲覀円杏洃浌δ?,那么,?dāng)然,要有一個(gè)能下拉的東西了。什么?ComboBox就是最好的選擇。那好,我們開始用ComboBox來構(gòu)建我們自己的控件。

建立示例程序:
1、新建項(xiàng)目,選擇Windows應(yīng)用程序,名稱:TestrulComboBox。

2、我們把我們所需要的控件放到工具箱里面。在工具箱上面點(diǎn)右鍵。添加/移除項(xiàng)。打開Com組件,選擇剛才項(xiàng)目生成的ControlSet.URLControl.dll。

3、把剛才添加到工具箱上面的Microsoft Web 瀏覽器控件,和ControlSet.URLControl.dll控件,拖放到主窗口上,并進(jìn)行排列。

4、添加一個(gè)控鈕。并在它的事件中輸入如下代碼:

  1. privatevoidbtnSure_Click(objectsender,System.EventArgse)  
  2. {  
  3. CursorCursorcurrentCursor=Cursor.Current;  
  4. try  
  5. {  
  6. Cursor.Current=Cursors.WaitCursor;  
  7. objectarg1=0;objectarg2="";objectarg3="";objectarg4="";  
  8. axWebBrowser1.Navigate(urlComboBox1.Text,refarg1,refarg2,refarg3,refarg4);  
  9. }  
  10. finally  
  11. {  
  12. Cursor.Current=currentCursor;  
  13. }  

運(yùn)行,測(cè)試就可以了.到此,你也可以自己試著做一個(gè)自己的、個(gè)性化的瀏覽器了。以上介紹C#記憶功能的地址欄控件。

【編輯推薦】

  1. 分析C#不安全代碼
  2. 淺析C#調(diào)用ImageAnimator
  3. C#連接Access、SQL Server數(shù)據(jù)庫(kù)
  4. 淺談C#固定的和活動(dòng)的變量
  5. 介紹C#中的值類型
責(zé)任編輯:佚名 來源: 百度空間
相關(guān)推薦

2009-07-16 14:13:35

Swing地址欄

2011-02-25 09:03:03

Chrome

2009-08-07 13:03:10

C#控件數(shù)組

2009-03-30 08:58:52

Firefox瀏覽器

2011-06-28 09:23:22

Firefox地址欄

2011-02-21 14:10:50

Chrome

2015-12-01 10:43:55

2011-10-09 09:16:59

JavaScript

2021-01-06 08:05:47

Chrome瀏覽器

2011-11-04 15:28:49

傲游瀏覽器

2012-07-16 16:23:29

Firefox瀏覽器

2011-05-20 16:07:29

C#

2021-05-27 15:06:41

Chrome瀏覽器Google

2018-09-17 13:39:14

Chrome瀏覽器網(wǎng)址

2011-05-20 17:23:41

Chrome 13

2009-08-18 17:41:22

C# ListView

2009-08-11 14:45:41

C# DataGrid

2009-08-19 11:21:02

C# ListBox控

2009-08-24 11:23:41

C# TimeLabe

2012-11-06 13:17:05

Chrome瀏覽器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)