none
做連結網頁程式問題 RRS feed

  • 問題

  • 想請教一下 我使用Visual 2008C#智慧型開發裝置正在寫一個程式 在執行時點取後可以連接到網頁上去

    我是使用LinkLabel元件來寫  可是卻無法連結  以下是我的程式寫法 不知道哪裡有誤

            private void linkLabel1_Click(object sender, EventArgs e)

            {

                linkLabel1.Text = "http://www.cto.doh.gov.tw/";

            }


    2011年1月17日 上午 03:33

解答

  • 你要為LinkLabel加入其目標進Links屬性, 並藉由Process.Start去啟動瀏覽器

    ex:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim linklable1 As New LinkLabel
            linklable1.Text = "Microsoft"
            linklable1.Links.Add(0, 9, "www.microsoft.com")
            AddHandler linklable1.LinkClicked, AddressOf LinkLabel1_LinkClicked
            Me.Controls.Add(linklable1)
        End Sub

        Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs)
            Dim target As String = CType(e.Link.LinkData, String)
            System.Diagnostics.Process.Start(target)

        End Sub


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已編輯 Bill ChungMVP 2011年1月17日 上午 03:55 修改錯字
    • 已提議為解答 bauannModerator 2011年1月18日 上午 03:22
    • 已標示為解答 艾瑞特 2011年1月18日 上午 06:01
    2011年1月17日 上午 03:55
  • 您好

    在 .NET Compact Framework,LinkLabel 有些屬性沒有提供(例如 LinkLabel.Links),可能請發問者要自行修改 BillChung 給的範例

    參考 LinkLabel 屬性

    http://msdn.microsoft.com/zh-tw/library/system.windows.forms.linklabel_properties(v=VS.90).aspx


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 艾瑞特 2011年1月18日 上午 06:01
    2011年1月18日 上午 04:00
    版主
  • 您好

    請將 System.Diagnostics.Process.Start("http://www.microsoft.com");

    改為以下方式指定以 IE 開啟

    System.Diagnostics.Process.Start("iexplore.exe", "http://www.microsoft.com");

    或者參考以下方式,以預設瀏覽器開啟網址

                ProcessStartInfo psi = new ProcessStartInfo();
                psi.FileName = "http://www.microsoft.com";
                Process.Start(psi);


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 艾瑞特 2011年1月18日 上午 07:56
    2011年1月18日 上午 07:05
    版主
  • Google的瀏覽器應該是"chrome.exe"
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 艾瑞特 2011年1月18日 上午 07:56
    2011年1月18日 上午 07:20
  • 所以若要宣告已google開啟

    要將"iexplore.exe"更改為google.exe是這樣嗎?


    應該不是,假如您是指 Chrome 瀏覽器的話,名稱可能是 chrome.exe,請您使用檔案總管去找找看瀏覽器執行檔名稱是什麼
    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 艾瑞特 2011年1月18日 上午 07:56
    2011年1月18日 上午 07:20
    版主

所有回覆

  • 你要為LinkLabel加入其目標進Links屬性, 並藉由Process.Start去啟動瀏覽器

    ex:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim linklable1 As New LinkLabel
            linklable1.Text = "Microsoft"
            linklable1.Links.Add(0, 9, "www.microsoft.com")
            AddHandler linklable1.LinkClicked, AddressOf LinkLabel1_LinkClicked
            Me.Controls.Add(linklable1)
        End Sub

        Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs)
            Dim target As String = CType(e.Link.LinkData, String)
            System.Diagnostics.Process.Start(target)

        End Sub


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已編輯 Bill ChungMVP 2011年1月17日 上午 03:55 修改錯字
    • 已提議為解答 bauannModerator 2011年1月18日 上午 03:22
    • 已標示為解答 艾瑞特 2011年1月18日 上午 06:01
    2011年1月17日 上午 03:55
  • 您好

    在 .NET Compact Framework,LinkLabel 有些屬性沒有提供(例如 LinkLabel.Links),可能請發問者要自行修改 BillChung 給的範例

    參考 LinkLabel 屬性

    http://msdn.microsoft.com/zh-tw/library/system.windows.forms.linklabel_properties(v=VS.90).aspx


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 艾瑞特 2011年1月18日 上午 06:01
    2011年1月18日 上午 04:00
    版主
  • 恩....所以在這之前要寫程式去設定linklable的一些屬性

    再使用Process.Star啟動遊覽器囉!!

     

    謝謝你的指導 我去試試看 

    2011年1月18日 上午 06:00
  • 恩 謝謝

    我會參考做更改的

    2011年1月18日 上午 06:00
  • 因為我是用Visual 2008 C#智慧型裝置開發程式,在此也謝謝樓上兩位的指導

    我後來用C#的語言將程式更改為下面所示:

    private void linkLabel1_Click(object sender, EventArgs e)

            {

                try

                {

                    VisitLink();

                }

                catch (Exception ex)

                {

                    MessageBox.Show("Unable to open link that was clicked.");

                }

                //linkLabel1.Text = "http://www.cto.doh.gov.tw/";

            }

     

            private void VisitLink()

            {

                // Change the color of the link text by setting LinkVisited 

                // to true.

                //linkLabel1.LinkVisited = true;

     

                //Call the Process.Start method to open the default browser 

                //with a URL:

                System.Diagnostics.Process.Start("http://www.microsoft.com");

            }

    不過執行時System.Diagnostics.Process.Start("http://www.microsoft.com");出現錯誤

     

    錯誤訊息如下所示:

    錯誤 1 最符合的多載方法 'System.Diagnostics.Process.Start(System.Diagnostics.ProcessStartInfo)' 有一些無效的引數 C:\Users\Gemini\Desktop\測試中手機界面程式\測試中手機界面程式\Form6.cs 48 13 測試中手機界面程式

    錯誤 2 引數 '1': 無法從 'string' 轉換為 'System.Diagnostics.ProcessStartInfo' C:\Users\Gemini\Desktop\測試中手機界面程式\測試中手機界面程式\Form6.cs 48 27 測試中手機界面程式
    錯誤 3 '測試中手機界面程式.flcsWeb' 不包含 'flcsWeb_Load' 的定義,也找不到擴充方法 'flcsWeb_Load' 來接受型別 '測試中手機界面程式.flcsWeb' 的第一個引數 (您是否遺漏 using 指示詞或組件參考?) C:\Users\Gemini\Desktop\測試中手機界面程式\測試中手機界面程式\Form6.Designer.cs 91 55 測試中手機界面程式

    我有在文件庫查過Process.Start是可以使用,但是我看過範例也是這樣的寫法

    想請教在這邊的開發系統上 還有限制住嗎?

    2011年1月18日 上午 06:58
  • 您好

    請將 System.Diagnostics.Process.Start("http://www.microsoft.com");

    改為以下方式指定以 IE 開啟

    System.Diagnostics.Process.Start("iexplore.exe", "http://www.microsoft.com");

    或者參考以下方式,以預設瀏覽器開啟網址

                ProcessStartInfo psi = new ProcessStartInfo();
                psi.FileName = "http://www.microsoft.com";
                Process.Start(psi);


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 艾瑞特 2011年1月18日 上午 07:56
    2011年1月18日 上午 07:05
    版主
  • 所以若要宣告已google開啟

    要將"iexplore.exe"更改為google.exe是這樣嗎?

    2011年1月18日 上午 07:14
  • Google的瀏覽器應該是"chrome.exe"
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 艾瑞特 2011年1月18日 上午 07:56
    2011年1月18日 上午 07:20
  • 所以若要宣告已google開啟

    要將"iexplore.exe"更改為google.exe是這樣嗎?


    應該不是,假如您是指 Chrome 瀏覽器的話,名稱可能是 chrome.exe,請您使用檔案總管去找找看瀏覽器執行檔名稱是什麼
    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 艾瑞特 2011年1月18日 上午 07:56
    2011年1月18日 上午 07:20
    版主
  • 恩恩 了解 謝謝各位解題
    2011年1月18日 上午 07:56