【问题标题】:How to use a VB usercontrol on a C# page?如何在 C# 页面上使用 VB 用户控件?
【发布时间】:2010-05-26 16:15:37
【问题描述】:

希望有人能指出我正确的方向。

我在 VB 中创建了一个用户控件,它比 DataPager 更有效地处理分页(至少对于非常大的数据集)。我想在 C# 项目中使用它,但我无法让它工作。

我尝试简单地将 PagingControl.ascx 添加到 C# 项目中,但是当我这样做时,后面的标记和 VB 代码似乎看不到对方。 --这是命名空间问题吗?

我尝试将 PagingControl.ascx 添加到它自己的 VB 项目中,然后将该项目添加到 C# 项目的解决方案中,以及参考。 ——这几乎行得通。我可以在标记中注册 PagingControl 用户控件。我可以在后面的代码中访问用户控件的属性,但是任何涉及用户控件 UI 的属性都会失败。

在 C# 页面的 Page_Load 事件处理程序触发时,似乎用户控件的表单还没有机会加载。 --也许这是一个“操作顺序”问题?应该在 C# 页面生命周期的哪个时间点加载用户控件的表单?

如果有人有任何想法或见解,我将不胜感激。提前致谢。

【问题讨论】:

  • "但是任何涉及用户控件 UI 的属性都会失败。"失败的本质是什么?您是说它在设计时失败(即 Intellisense 失败)还是在运行时(引发异常)。
  • 我得到的错误是:“System.NullReferenceException:对象引用未设置为对象的实例。”调试时,如果我将鼠标悬停在控件名称和属性上,我不会得到描述控件的通常弹出消息。它好像它不存在(还)。 Intellisense 在不调试时工作。
  • “控件名称和属性”是指用户控件中使用的控件,而不是用户控件本身。
  • 这是一个网络应用程序还是一个网站项目?您可以与网站项目混合搭配,但不能与 Web 应用程序项目混合搭配。
  • 它是一个 Web 应用程序项目。也许在一个项目中混搭是不可能的,但在两个项目之间肯定是可能的。是否可以将一个项目的 C# 用户控件添加到另一个项目的 C# 页面?

标签: c# asp.net vb.net user-controls


【解决方案1】:

您不能在一个项目中拥有 VB 和 C# 代码 - 您必须将其拆分并在 C# 项目中引用 VB 部分。对于另一个问题:不知道,因为我不做网络开发。

【讨论】:

  • 到目前为止,情况似乎是这样,VB 和 C# 在同一个项目中不能“很好地协同工作”。
  • Visual Studio 不支持,是的。在#develop 它实际上是。
  • 哇。我得去看看。我不知道这是否有助于解决我目前的问题,但听起来确实很有趣。
猜你喜欢
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多