有一段C#代碼,想轉換成vb.net的:
public override Size MinimumSize
{
get
{
return TextRenderer.MeasureText( Graphics.FromHwnd( Handle ), Text,
Font, Size, _textFormatFlags );
}
}
我將其轉換成:
Public Overloads Overrides ReadOnly Property MinimumSize() As Size
Get
Return TextRenderer.MeasureText(Graphics.FromHwnd(Handle), Text, Font, Size, _textFormatFlags)
End Get
End Property
總是會出錯,說什么"基類已寫成ReadOnly和WriteOnly",大概意思就是這樣子不能只有Get,沒有Set啦,各位應該都會明白的啦。然后,我將其改成如下: Public Overloads Overrides Property MinimumSize() As Size
Get
Return TextRenderer.MeasureText(Graphics.FromHwnd(Handle), Text, Font, Size, _textFormatFlags)
End Get
Set(ByVal value As Size) End Set
End Property
是可以通過,問題是我想問:這樣子轉換是對?還是有問題?為什么C#可以Override?而VB卻不能只能Overload?
public override Size MinimumSize
{
get
{
return TextRenderer.MeasureText( Graphics.FromHwnd( Handle ), Text,
Font, Size, _textFormatFlags );
}
}
我將其轉換成:
Public Overloads Overrides ReadOnly Property MinimumSize() As Size
Get
Return TextRenderer.MeasureText(Graphics.FromHwnd(Handle), Text, Font, Size, _textFormatFlags)
End Get
End Property
總是會出錯,說什么"基類已寫成ReadOnly和WriteOnly",大概意思就是這樣子不能只有Get,沒有Set啦,各位應該都會明白的啦。然后,我將其改成如下: Public Overloads Overrides Property MinimumSize() As Size
Get
Return TextRenderer.MeasureText(Graphics.FromHwnd(Handle), Text, Font, Size, _textFormatFlags)
End Get
Set(ByVal value As Size) End Set
End Property
是可以通過,問題是我想問:這樣子轉換是對?還是有問題?為什么C#可以Override?而VB卻不能只能Overload?
Get
Return TextRenderer.MeasureText(Graphics.FromHwnd(Handle), Text, Font, Size, TextFormatFlags.Default)
End Get
Set(ByVal value As System.Drawing.Size)
MyBase.MinimumSize = value
End Set
End Property
c#->vb.net网站,简单.
謝謝!@mythad()
你試一下,看能否正確轉換上面的屬性不?@lovingkiss(*︻$▅▆▇◤ 沧浪翻涌剑留影,空留玉箫无人聆*)
呵呵...,是啊。
因為我在轉上面的Property時不知如何轉換,不過,我按照上面
“zswang(伴水清清)(专家门诊清洁工)”的話來做,還是沒有成功,仍然出現Failed to Create Components 'myBox'.這是什么原因呢?繼續期待兄弟們的解答。
Get
Return TextRenderer.MeasureText(Graphics.FromHwnd(Handle), Text, Font, Size, _textFormatFlags)
End Get
End Property
这是转换后的代码。
我用过转换,大概转过2000行左右的代码,效果还可以,但是还是需要手工改一些。
不知道你重写的哪个类,没法测试,你没自己试下么?