请教一个C#转vb.net 的问题,大神帮忙 100

网上一个窗体四周阴影的例子当中,SkinForm当中构造函数代码为:partialclassSkinForm:Form{//控件层privateSkinMainMain;... 网上一个窗体四周阴影的例子当中, SkinForm当中构造函数代码为:

partial class SkinForm : Form
{
//控件层
private SkinMain Main;
//带参构造
public SkinForm(SkinMain main)
{
InitializeComponent();
//将控制层传值过来
this.Main = main;
//减少闪烁
SetStyles();
//初始化
Init();
}
#region 初始化
而SkinMain中的构造函数为:
public partial class SkinMain : Form
{
//绘制层
private SkinForm skin;
public SkinMain()
{
InitializeComponent();
//减少闪烁
SetStyles();
//初始化
Init();
}
SkinMain中用于显示阴影的代码:
Protected Overrides Sub OnVisibleChanged(e As EventArgs)
MyBase.OnVisibleChanged(e)
If Visible Then
If Not DesignMode Then
DWin32.AnimateWindow(Me.Handle, 150, DWin32.AW_BLEND Or DWin32.AW_ACTIVATE)
ElseIf Not DesignMode AndAlso ds Is Nothing Then
ds = New DSkin(Me)
ds.Show(Me)
End If
MyBase.OnVisibleChanged(e)
Else
MyBase.OnVisibleChanged(e)
DWin32.AnimateWindow(Me.Handle, 150, DWin32.AW_BLEND Or DWin32.AW_HIDE)
End If
End Sub

问题是,用vb.net 定义SkinForm 必须要用private skin as SkinForm(me)才可以,但是如果这样,程序运行就会导致溢出,报错显示无限循环。如果用private skin as SkinFrom 这样也报错,必须要有参数。
请问各位大神,怎么转换。或者代码应该怎么写?
Private Sub SetStyles()
SetStyle(ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True)
UpdateStyles()
MyBase.AutoScaleMode = Windows.Forms.AutoScaleMode.Dpi
End Sub

报错就是报的构造函数和
OnVisibleChanged这个函数这里
展开
 我来答
lrh3321
2015-02-15 · TA获得超过2182个赞
知道大有可为答主
回答量:2296
采纳率:75%
帮助的人:2097万
展开全部

请教一个C#转vb.net 的问题。求助大神-CSDN论坛-CSDN.NET-中国最大的IT技术社区

http://bbs.csdn.net/topics/390986785

是你发的帖子吧。你在里面把代码不全啊,包括原本的C#代码和你转的VB.NET代码


VB.NET里有

private skin as SkinForm(me)的用法?

明显应该是 Private skin as SkinForm

然后再在New方法的最后一行或者首次用到skin 之前,

If (skin is Nothing) Then skin =New SkinForm(Me)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式