请教一个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这个函数这里 展开
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这个函数这里 展开
1个回答
展开全部
请教一个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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询