---
title: "Översätta VB till C#"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/74551-översätta-vb-till-c"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "saw"
published: "2003-04-20T11:59:29.000Z"
updated: "2003-04-22T21:22:58.000Z"
replies: 7
views: 337
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/74551-översätta-vb-till-c"
---

# Översätta VB till C#

## #1 — saw, 2003-04-20T11:59Z

Jag använder en liten underbar kod i VB för en Autolist i en textruta.
Nu undrar jag, kan man översätta den till C#?
Det handlar bl a om ett API-anrop och några konstanter.

```
Private Declare Function SendMessage _
   Lib "user32" Alias "SendMessageA" _
   (ByVal hwnd As Long, ByVal wMsg As Long, _
   ByVal wParam As Long, lParam As Any) As Long

Const EM_GETFIRSTVISIBLELINE = &HCE
Const EM_LINEFROMCHAR = &HC9
Const EM_LINELENGTH = &HC1
Const EM_LINEINDEX = &HBB 

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

If Chr(KeyAscii) = ";" Then
       Combo1.Visible = True
       
       Dim p As POINTAPI
       GetCaretPos p
       Combo1.left = ScaleX(p.x, vbPixels, vbTwips) + Text1(8).left + 60
       Combo1.tOp = ScaleY(p.y, vbPixels, vbTwips) + Text1(8).tOp + ScaleY(Text1(8).Font.Size, vbPoints, vbTwips) + 60
   ElseIf Combo1.Visible = True Then
       Combo1.Visible = False
   End If
End Sub
```

Tacksam för all hjälp

Permalänk: https://www.webforum.nu/p/74551

## #2 — niko, 2003-04-21T12:55Z

> Tacksam för all hjälp

Då tar jag dig på orden och ger dig lite hjälp bara med själva deklarationerna:

```
private struct POINTAPI
{
	public int X;
	public int Y;
};

[DllImport("user32.dll")]
private static extern int SendMessage(
	int hWnd,
	uint Msg,
	int wParam,
	int lParam 
);

[DllImport("user32.dll")]
private static extern bool GetCaretPos(ref POINTAPI point);

private const int EM_LINEINDEX = 0xBB;
private const int EM_LINEFROMCHAR = 0xC9;
private const int EM_LINELENGTH = 0xC1;
private const int EM_LINEINDEX = 0xBB;
```

Resten av koden känns svår att översätta "on-the-fly" om man inte riktigt vet hur det egentligen ska se ut. Man får nog sätta sig med studion, rita upp kontrollerna, köra lite trial-and-error, googla lite, osv ..

Permalänk: https://www.webforum.nu/p/1018436

## #3 — Josef, 2003-04-22T10:06Z

Det finns en sida som översätter VB.NET till C#. Ska leta reda på adressen när jag kommer hem.

Permalänk: https://www.webforum.nu/p/1019072

## #4 — niko, 2003-04-22T10:25Z

> **Josef skrev:**
>
> Det finns en sida som översätter VB.NET till C#.

Jo, fast nu *är* det ju inte VB.NET utan VB6/5/4. Vad man *kan* göra om man har större kodmängder är ju att först översätta från VB6 till VB.NET mha den inbyggda "Upgrade Wizarden" i .NET-Studion och sen översätta från VB-NET till C# ganska automatiskt. Problemet är bara att "Upgrade Wizarden" oftast bara klarar de självklara bitarna och lämnar kvar de "svåra". (Jag har testat på koden ovan.)

Permalänk: https://www.webforum.nu/p/1019083

## #5 — saw, 2003-04-22T10:44Z

Tack för detta nika. Det är ju en kanon bra början, får se nu så att jag kan använda och utvekla resten.

Många tack

Permalänk: https://www.webforum.nu/p/1019094

## #6 — Josef, 2003-04-22T18:14Z

Aha, såg det nu.

Dessutom konverterade den sidan jag hade adressen C# till VB.NET och inte tvärtom. Jag kan lika gärna posta länken iallafall: <http://www.kamalpatel.net/ConvertCSharp2VB.aspx>

Permalänk: https://www.webforum.nu/p/1019393

## #7 — saw, 2003-04-22T18:40Z

Tack Josef men om det hade varit på andra hållet...

Permalänk: https://www.webforum.nu/p/1019479

## #8 — Nickemannen, 2003-04-22T21:22Z

<http://www.kamalpatel.net/Downloads/ConvertCSharp2VB_Offline_Tool.zip>

Ladda ner det och vänd allt.

Borde inte vara så svårt :D

Permalänk: https://www.webforum.nu/p/1022580

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/74551-översätta-vb-till-c
