65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 C# 构建带标签的 Pocket PC 2003 Web 浏览器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.44/5 (13投票s)

2007年5月23日

CPOL

3分钟阅读

viewsIcon

83248

downloadIcon

1157

一篇关于使用 VS 2005 和 C# 构建 Pocket PC 应用程序的文章。

Screenshot - PPC_Web_Browser.jpg

引言

最近,我一直在网上为我的 Imate–Jam Pocket PC 寻找一个具有标签页功能的浏览器,就像 Mozilla Firefox 或 Internet Explorer 7 一样。 结果我很失望。 我可能在搜索方面效率不高,但与其浪费太多时间搜索,我决定构建一个来满足我的需求。 我认为与那些可能像我一样正在受苦的人分享这个想法会很好,所以这里就是了。

初始设置

我不想直接进入实现,当然,实现非常简单,我想从头开始,以帮助那些初学者。 首先,你需要的是 VS 2005 IDE。 它提供了一套很棒的工具,使开发任务变得非常容易。 首先,选择一个新项目,然后在项目类型下,选择 Visual C# -> 智能设备,然后是设备应用程序。 这应该让你进入正确的环境开始工作。

那些第一次构建应用程序的人可能会惊讶地看到表单进入 Pocket PC 设备内部。 在这里,您可以设计您的表单,就像任何其他 Windows 应用程序一样,您可以从工具箱中拖动项目来设计表单。 但请记住,您只能获得一小部分工具来使用。 这些是设备应用程序将支持的工具。 另一件需要注意的重要事情是,在提供的控件中,并非所有控件方法和属性都受支持。 如果没有正确处理,这可能会产生异常。

使用代码

我们将使用标签控件设计应用程序,这将帮助我们处理将托管 Web 浏览器不同页面的标签。 我们添加一个菜单栏来执行任务。 最重要的是“新建标签”菜单,它将创建一个新的标签页并将其与标签控件关联。

/// <summary>
/// adds a new tab page dinamically to the tab control.
/// </summary>
private void AddNewTabPage()
{
    TabPage newTab = new TabPage();
    newTab.Text = (this.tbControl.Controls.Count + 1).ToString();
    newTab.Size = new Size(
        this.tbControl.Bounds.Width, this.tbControl.Height);
    newTab.Name = "tab" + (this.tbControl.Controls.Count + 1).ToString();
    WebBrowser w = new WebBrowser();
    w.Name = "tab" + (this.tbControl.Controls.Count).ToString();
    newTab.Controls.Add(w);
    w.Dock = DockStyle.Fill;
    this.tbControl.Controls.Add(newTab);
    this.tbControl.SelectedIndex = this.tbControl.TabPages.Count - 1;
}

您可能在上面的代码中注意到,我正在向新标签页添加一个 Web 浏览器控件。 这是必需的,因为每个新标签页都应该有一个单独的网页与之关联,以便加载单个文档。 我使用组合框控件来获取网址的输入。 此地址(以字符串形式)无法直接传递给 Web 浏览器的 navigate 方法来获取内容。 因此,我们准备了一个 URI 对象来达到目的。 请注意,地址应以以下形式传递:http://www.yyy.com 到 URI 构造函数。 我们使用 Regex.Replace 方法来实现这一点。

if (address != null)
address = Regex.Replace(address, "^www", "http://www");
Uri url = new Uri(address);

除了最后一件事之外,工作几乎结束了。 每次用户在组合框中输入地址并选择导航时,都必须在当前选定的标签页中显示该页面。 如果不存在标签页,我们创建一个新标签页。

if (this.tbControl.Controls.Count == 0)
{ 
    AddNewTabPage(); 
}

int selectedtabIndex = this.tbControl.SelectedIndex; 
 
//navigate to the the address apecified. 
try
{ 
    ((
        WebBrowser)this.tbControl.TabPages[
        selectedtabIndex].Controls[0]).Navigate(url);
} 
catch 
{
    MessageBox.Show("There was some error trying to reach the site");
}

为了在 Pocket PC 或 PDA 中部署此应用程序,您需要在设备上安装 Net CF 2.0 (.NET Compact Framework)。 如果没有,请使用 Microsoft active sync(版本 4.1 或更高版本)将您的设备与 PC 连接,然后从 Visual Studio 运行应用程序。 它将提示您选择是否部署在可用的模拟器或设备上。 选择设备并等待部署完成。 稍后,您可以将构建的 EXE 文件复制到应用程序并运行它。

关注点

这可能是一个非常简单的应用程序,但当需要标签浏览体验时,它肯定会完成任务。 我将带着关于这个话题的其他更有趣的事情回来。

历史

  • 2007 年 5 月 23 日 -- 发布原始版本
  • 2007 年 6 月 4 日 -- 文章已编辑并发布到 CodeProject.com 主文章库
© . All rights reserved.