用C#如何添加自定义控件

奔走中的程序媛 2012-05-16 04:19:17
需要用CsGL与OpenGL结合调用图形库,首先需要用C#添加一个自定义控件,对C#涉入不深,求指导。以下代码是在VS08下编写

的,具体是什么问题?


using System;
using CsGL.OpenGL;
using CsGL.Util;
namespace CsGL
{
public partial class MyView : OpenGLControl
{
public MyView()
{
InitializeComponent();

}
protected override void InitGLContext()
{
base.InitGLContext();
}
public override void glDraw()
{
base.glDraw();
}
protected override bool IsInputKey(Keys key) //处理input事件
{
base.IsInoutKey();
}
}

namespace CsGL
{
class MyKeyboard : Keyboard//新建一个类派生于MyKeyBroard
{
public override void KeyStateChanged(Event e)//重载键盘事件函数
{
base.KeyStateChanged(e);
}
}
}

namespace CsGL
{
class MyMouse : Mouse//新建一个类派生于Mouse
{
public override void MouseEvent(Mouse.Event e, int dx, int dy)//重载鼠标事件函数
{
base.MouseEvent(e, dx, dy);
}
}
}

MyView my=new MyView();
this.ClientSize=new System.Drawing.Size(600,400);
this.controls.Add(my);
my.Parent=this;
my.BringToFront();
}
---------------------------------------------------------------------------
------ 已启动生成: 项目: testOpenGL, 配置: Debug Any CPU ------

D:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL\testOpenGL\testOpenGL\Program.cs(50,5): 错误 CS0116: 命名空间并不直接包含诸如字段或方法之类的成员
D:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL\testOpenGL\testOpenGL\Program.cs(50,19): 错误 CS1518: 应输入 class、delegate、enum、interface 或 struct
D:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL\testOpenGL\testOpenGL\Program.cs(51,25): 错误 CS1518: 应输入 class、delegate、enum、interface 或 struct

编译完成 -- 3 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
...全文
611 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
llkaximoduo 2012-05-16
  • 打赏
  • 举报
回复
这个是一个页面里的东西吗?如果是,多个命名空间可以写在一个页面里吗?如果不是,class都没有public修饰,也访问不到啊
pbk1987 2012-05-16
  • 打赏
  • 举报
回复
在程序的工具箱中右键 选择项 .net Framework 选择 到你的自定义控件 这个程序的 bin\debug\*.dll 文件添加进去就行了

110,534

社区成员

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

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

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