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






4.44/5 (13投票s)
一篇关于使用 VS 2005 和 C# 构建 Pocket PC 应用程序的文章。
引言
最近,我一直在网上为我的 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 主文章库