请教VB引用C#组件的问题

zhjian0175 2010-09-21 10:52:02
我用C#做了一个组件DllTest在VB中调用。在VB引用中添加DllTest.tlb文件,使用以下命令:

Dim obj As Object,i as integer
Set obj = Me.Controls.Add("DllTest.UserControl1", "obj") '控件名为DllTest
With obj
.Left = 0
.Top = 0
.Width = 6000
.Height = 4000
.Visible = True
.Show
End With

'i=obj.add(2,3) '访问控件的公共函数


如果不访问控件方法,如“i=obj.add(2,3)”这句, 在VB运行后能看到控件界面,各种鼠标键盘操作也能正常响应,只要一加“i=obj.add(2,3)”就是无法调用控件的函数,一调用就提示“对象不支持该属性和方法”。

另外,如果在VB中这样写:

Dim obj As DllTest.UserControl1 ,i as integer
Set obj= New DllTest.UserControl1

With obj
.Left = 0
.Top = 0
.Width = 6000
.Height = 4000
.Visible = True
.Show
End With
i= obj.Add(2, 3) '访问控件的公共函数

这样可以访问控件函数,I的返回值为5,但控件界面无法在VB窗内显示。

...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzjxylophone 2010-09-25
  • 打赏
  • 举报
回复
帮顶。
zhjian0175 2010-09-25
  • 打赏
  • 举报
回复
感谢各位,但还是不大明白。
小夏天~ 2010-09-23
  • 打赏
  • 举报
回复
public bool ExportDataGridview(DataGridView gridView,bool isShowExcle)
{
if (gridView.Rows.Count == 0)
return false;
//建立Excel对象
Excel.Application excel = new Excel.Application();
excel.Application.Workbooks.Add(true);
excel.Visible = isShowExcle;
//生成字段名称
for (int i = 0; i < gridView.ColumnCount; i++)
{
excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText;
}
//填充数据
for (int i = 0; i < gridView.RowCount-1; i++)
{
for (int j = 0; j < gridView.ColumnCount; j++)
{
if (gridView[j, i].ValueType == typeof(string))
{
excel.Cells[i + 2, j + 1] = "'" + gridView[j, i].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] = gridView[j, i].Value.ToString();
}
}
}
return true;
}
哥子谭 2010-09-22
  • 打赏
  • 举报
回复
不懂VB,帮顶

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧