2013-09-10 7 views
-2

У меня есть этот кусок кода из MSDN. Он написан в C#, столкнувшись с проблемой при преобразовании его в форму VB.Преобразование кода

кто-нибудь может помочь link

Проблема в

foreach (Control control in flowLayoutPanel1.Controls) 
{ 
    control.MouseDown += MyMouseDown; 
} 

ответ

1

Это ваш друг помощник :) преобразует очень хорошо

http://www.developerfusion.com/tools/convert/csharp-to-vb/

Использование сайта преобразует код:

For Each control As Control In flowLayoutPanel1.Controls 
    control.MouseDown += MyMouseDown 
Next 
+0

+1 Спасибо за ссылку для разработчика fusion :) – Praveen

+0

@ user1671639, это приведет к тому же коду, что и Рекомендуемый, который не будет работать. – Heslacher

+0

@Onam, это просто не работало. См. Мой ответ для деталей. (-1) – Heslacher

3

C# foreach является VB For Each

C# Control control является VB ctrl As Control здесь Ctrl, потому что VB не чувствителен к регистру

C# control.MouseDown += MyMouseDown является VB AddHandler ctrl.MouseDown, AddressOf(MyMouseDown)

Смотрите также: AddressOf Operator, AddHandler statement

Так все вместе:

For Each ctrl As Control In flowLayoutPanel1.Controls 
    AddHandler ctrl.MouseDown, AddressOf MyMouseDown 
Next 
+0

+1 Хороший улов. Я думаю, что должна быть диаграмма сравнения между 'C#' и 'VB.NET'. – Praveen

+1

Почему скобки в 'AddressOf (MyMouseDown)'? В противном случае приятно видеть ответ, который не является слепой копией дерьма, который производит конвертер разработчика. – sloth

+0

@ DominicKexel, вы правы. Проделали много C# в последнее время, поэтому я всегда использую круглые скобки ;-) Отредактированный ответ. – Heslacher

Смежные вопросы