Visual Studio IDE

Announcement: Last fall, we migrated this forum to Visual Studio Developer Community to provide you one convenient and responsive system for all feedback. As the final step in the migration, this forum will be closed off completely on June 1st, 2019. We encourage you to visit Visual Studio Developer Community where you can now suggest new ideas, browse and vote on existing ideas, and engage with Visual Studio teams.

We’d like your suggestions and ideas to help us continuously improve future releases of Visual Studio, so we’ve partnered with UserVoice, a third-party service, to collect your feedback. Please do not send any novel or patentable ideas, copyrighted materials, samples or demos for which you do not want to grant a license to Microsoft.

This site is for feature suggestions; if you need to file a bug, you can visit our Developer Community website to get started.

Note: your use of the portal and your submission is subject to the UserVoice Terms of Service & Privacy Policy and license terms.

We look forward to hearing from you!
- The Visual Studio Team

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Inline assignment inside while statement

    I think VB developers miss the inline assignment inside while clause feature, which is already exist in c#
    its great if we can find the equivalent for this in VB

    while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
    {
    // Use the data you've read
    }

    'll be

    While (bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0
    ' Use the data you've read
    End While

    i know the VB uses = as equality operator inside while, but while VB uses the same operator for assignment, perhaps we can find a proper solution for this

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  2. Befehlseingabe über Benutzeroberfläche

    Ich vermisse die komfortable Eingabe von Befehlen (vielleicht gibt es sie ja und ich bin nur noch nicht so weit).
    Sollte es diese Funktion nicht geben, werde ich sie nachfolgend beschreiben.

    Beispiel bei Excel:
    Wenn ich in Excel in der Befehlszeile das Gleichheitszeichen eingebe und die Funktion Summe ausgewählt ist, brauche ich nur im Tabellenblatt die Zellen markieren, welche ich addieren will.
    Excel fügt die Syntax währenddessen automatisch richtig in die Befehlszeile ein (z. B. "=B3:B8").


    Dies sollte auch bei Visualbasic funktionieren.

    Beispiel Visualbasic:
    Ich möchte nach Klick auf einem Button, dass in einem Textfeld das Wort "Test" erscheint.
    Textfeld…

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  3. let functions define anonymous types as return values

    I think it will be useful to let functions define anonymous types as return values, instead of declaring a structure or a class just to hold return values. I suggest something like this:

    Function x() As {string, string}
    Return New With {.Name = "Jon", .Note = "Test"}
    End Function

    Or:
    Function x( ) As {Name As String, Note As String}
    Return New With {.Name = "Jon", .Note = "Test"}
    End Function

    Or: use a keyword (i.e. Anonymous) and let the function infer the Anonymous Type definition from the return value:

    Function x() As Anonymous
    Return New With {.Name = "Jon",…

    4 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  4. If block with return value

    n = If i > 1 Then
    ........If = 1
    ....ElseIf j > 1 Then
    ........If = 2
    ....ElseIf k > 1 Then
    ........If = 3
    ....Else
    ....If = 0
    ....End If

    'Advantages:
    ' - no redundancy
    ' - safer code
    ' - clear purpose
    ' - good reading
    ' - good maintaining
    ' - no need new VB keyword

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    14 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  5. Handles keyword in WPF

    In Windows Forms for events is used Handles keyword, in WPF isn't. Please implements Handles keyword to the WPF.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we havenÕt acted on it. Looking at the VS Ò15Ó plans, weÕre not going to take action on this item, so weÕre going to close it. If the suggestion is still relevant, please either take a look to see if thereÕs another suggestion thatÕs similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  6. Implement Interface members Implicitly

    It 'll be nice if we can declare the interface members implicitly without mention the implemented member from the interface.
    In other words, we can write for example this

    Public Sub Method1()

    End Sub

    instead of

    Public Sub Method1() Implements InterfaceName.Method1

    End Sub

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  7. Add "When" keyword support to "Select...Case" statements.

    Similar to "Try...Catch", the "Select...Case" statement could support the "When" keyword. The runtime would then evaluate a case only if the expression after the "When" keyword evaluates to True.

    Template:

    Select [ Case ] testexpression
    [ Case expressionlist [ When expression ]
    [ statements ] ]
    [ Case Else
    [ elsestatements ] ]
    End Select

    It would completely ignore the case if "When" evaluates to False, allowing you to skip test expressions under certain preconditions.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  8. Using "with" with multiple items

    It would be great to be able to do this:

    Dim A As New TextBox
    Dim B As New Button
    Dim C As New Label
    With A, B, C
    .Text = "Hello"
    End With

    This is particularly useful when for instance one wants to apply the same format to multiple borders of an excel cell.

    Ideally you would want intellisense to show only the properties that have the same name between objects (a bit like visual studio's property box when selecting multiple items)

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  9. VB-Intellisense should suggest undefined variables from current context after writing "Dim..."

    Often, if i write a line of code, i start to write something and think this would be better split in more lines and use a new variable

    Basic example:

    result = (a + b) * c

    while writing the line, i think (a+b) is rather complex in one line, so just use a new temporary variable. But first I complete this line, if I already had defined this variable and write the "Dim" and the assignment afterwards.

    so, i write:

    result = x * c

    and afterwards i go some lines up and start to write

    dim x as...

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  10. Enhanced Synclock

    I would like to propose support for an enhanced Synclock (lock in C#) construct that would, instead of waiting to acquire a lock - if there is already a lock - would instead exit the function containing the Synclock statement.

    What I am trying to simulate with this new construct is the below.

    Public Sub DoWork()

    '-- START OF CODE REQUIRING ENHANCED SYNCLOCK
    Static bHere As Boolean = False
    If bHere Then Return

    Try
    bHere = True

    '-- Do protected work here

    Catch ex As Exception

    Finally
    bHere = False

    End Try
    '-- END OF CODE REQUIRING ENHANCED SYNCLOCK

    End…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  11. Allow breaking of all lines in VB, at any interval

    Just like in the semi-colon languages, however, instead of the semi-colon, we can use 'shift + enter' to indicate a soft line break, just like in Word.

    We can use the (↵) symbol to indicate a line break.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  12. Bring #define (for cource-code-defined text substitution macros) to Vb.Net (and C#)!

    I propose to add a keyword that behaves like C's #define. To define pre compiler text substitutions in code. Hopefully this will also allow advanced users to define their own keywords and to unofficially add shortcut for vb' expressive syntax. It would improve productivity because code can be effectively 'compressed', meaning that developers would have to type less to get more!

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  13. Add a new shortcut for amending properties (a bit like With but much more concise) to avoid repetition.

    Add a new shortcut for amending properties (a bit like With but much more concise) to avoid repetition.

    For example, instead of:
    opPrice.Items.Item(0).DisplayText = opPrice.Items.Item(0).DisplayText.Replace("()", schemeName)

    it should be:
    opPrice.Items.Item(0).DisplayText = ..Replace("()", schemeName)

    In other words, a double-dot (or possibly triple-dot) would be a shortcut for the thing being assigned.

    Shortcuts such as += already exist but .. would be a useful shortcut in numerous cases where += doesn't apply - for example, if you want to apply Replace or Trim or ToUpper.

    Instead of:
    custName = custName.Trim()
    I propose
    custName = ..Trim()

    It's a bit like With, but a…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  14. Self-Extending Integration

    Hi,
    I am a good programmer of VB.Net I found it Very Easy to use. But the thing i want is that programmer should be able to extend language by building new keywords. As In some class If we use IDisposable Then we can use Using statement for that class. So I want that user make new classes and make new keywords for them. Although It is easy to say this but i think its programming will be so hard but VB.Net will be language extending itself. There should be a class for implement or inheriting Keyword and build rules…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.
    - The Visual Studio Team

  15. introduce a code evaluation feature in visual studio

    include a feature that can aid beginners in visual basic on alternatives of how to enhance project performance and conformity to coding standards

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.
    - The Visual Studio Team

  16. add // for a comment and eat up semicolon at the end of the line

    while pasting to VB.NET a sample I managed to develop in C# I understood that most of reediting needed consisted of changing // into ' for starting comments and deleting terminating semicolons

    by chaning this two tiny details you would greatly help porting C# to VB.NET code

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  17. i want to add a function to math class this function compute Greatest common divisor

    Function gcd(ByVal a As Integer, ByVal b As Integer) As Integer
    Dim l As Integer = Math.Max(Math.Abs(a), Math.Abs(b)) '
    Dim s As Integer = Math.Min(Math.Abs(a), Math.Abs(b)) '
    Dim m As Integer = Math.Abs(Math.IEEERemainder(l, s))
    Do Until m = 0
    l = s
    s = m
    m = Math.Abs(Math.IEEERemainder(l, s))
    Loop

    Return s

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

  18. Allow for a (C++ style) reference to a Structure (value-type)

    In C++, one could have a reference to a structure like so: myStructType& myRef = myStructInstanceOfInterest;. To do something like that in VB today, there are these two ways:

    1. via ByRef parameter of Function or Sub
    2. as the target of a With statement

    The performance benefits are significant, especially as demonstrated by the With statement (see "Avoiding Requalification" at https://msdn.microsoft.com/en-us/library/aa289513(v=vs.71).aspx). (In its way, the With statement is indeed wonderful, considering a C# programmer would need to use unsafe, fixed, and pointers to do the exact same!). Living with the ByRef parameter option means taking performance hits especially…

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  19. In Visual Basic.Net there should be an NotCreatable Keyword in Class Definition

    Currently i'm writing a lot classes with the following constructor

    Public Class SecurityDefinitions

    ''' <summary>
    ''' Verhindert das Erstellen einer Instanz dieser Klasse.
    ''' </summary>
    Private Sub New()
    End Sub

    Better would be:

    Public NotCreatable Class SecurityDefinitions

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  20. allow LINQ expressions to start with Let

    Now to bind temporary variables for just one expression I can use LINQ but I have to fake a singleton tuple stream like this: From u In "_" Let var1 = expr1, var2 = expr2 Select expr. In Haskell I could just write: let var1 = expr1; var2 = expr2 in expr, omitting From u In "_". I'd like the requirement to include this noise removed from VB. And C# as well.

    3 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →

    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we havenÕt acted on it. Looking at the VS Ò15Ó plans, weÕre not going to take action on this item, so weÕre going to close it. If the suggestion is still relevant, please either take a look to see if thereÕs another suggestion thatÕs similar that you can vote on, or open a new suggestion.

    - The Visual Studio Team

Feedback and Knowledge Base