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. Allow the Dim keyword to be optional.

    For example, instead of:

    Dim a As Integer
    Dim b As Double
    Dim c As CustomType

    allow this syntax:

    a As Integer
    b As Double
    c As CustomType

    VB code would be cleaner and less verbose. (Possibly the compiler/parser could use the As keyword to recognise that a variable is being declared?).

    18 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. Using logical And operator in the Select Case statement

    Select Case dblA
    ....Case Is > 1.22 And Is < 3.4

    ....Case Is > 4.1

    ....Case Else

    End Select

    Select Case sProductName
    ....Case Is > sPrevProdName And Is Like "* tea *"

    ....Case "apple juice"

    End Select

    16 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  3. Add IntelliSense for XML Literals based on Imported xmlns

    The current feature that allows you to import an xmlns gives IntelliSense only when consuming XML via XElement or XDocument objects. You can type .< or .@ or ...< after an objcect of type XElement or XDocument and get IntelliSense for the available element and attribute names based on the XML Namespace.

    I've spoken at several user groups and code camps on this subject and the next thing that everyone wants to do is to get IntelliSense when composing XML Literals, but that's not currently available.

    Even if you have an xmlns imported and type something like the following, you…

    15 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

  4. enable line comments in VB after the line continuation char (_)

    Just a very simple thing:

    I had an attribute and a field written on two lines like this:

    <DebuggerBrowsable(DebuggerBrowsableState.Never)> _
    Private _SomeField As String

    and wanted to add a line comment after the '_':

    ...State.Never)> _ 'My reason why

    I now get the following error: "Line continuation character '_' must be preceded by at least one white space and must be the last character on the line."

    My request now is to change the rule "...must be the last character on the line" to "...must be the last non-white-space character on that part of the line that does not belong…

    15 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 →
  5. One Line Initialization

    I have a suggestion for a possible syntax improvement in visual basic.net. It's towards the initialization portion of a one line multiple declaration. Here is an example:

    'Syntax:
    Dim a, b, c As Integer = 5

    'Output:
    'a = 5
    'b = 5
    'c = 5

    Attached is a file of an example where I would want to use a one line initialization. Take a look at the test scores(test1, test2, test3). An easier way to declare those would be:

    Dim test1, test2, test3 As Double = -1

    15 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. Windows Phone 7 Training Kit for Developers

    VB code examples in the hands-on-labs (solutions and lab manuals).

    Windows Phone 7 Training Kit for Developers - RTM Refresh: http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=ca23285f-bab8-47fa-b364-11553e076a9a

    14 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

  7. Add new operator (&_) to insert vbCrLf between concatenated strings

    A line such as the following is tedious to write, and not so easy to read:

    txtAll.Text = strPrompt & vbCrLf & strInfo1 & vbCrLf & strInfo2

    I would love to see:

    txtAll.Text = strPrompt &_ strInfo1 &_ strInfo2

    12 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 →

    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

  8. Collection initializers for read-only collection properties in VB.NET

    I'm very happy that Microsoft is committed to VB.NET have the same features as C#.
    One feature I use extensivle in C# is collection initializers. I've just noticed that VB.NET supports these but not for read-only class properties.
    I found at http://msdn.microsoft.com/en-us/library/dd293617.aspx that if a collection has a an Add method, it is used to initialize the variable. This should also apply to read-only collection properties.

    Here is compilable C# code showing the feature working:

    using System;
    using System.Collections.Generic;

    namespace ConsoleApplication3
    {
    class Class1
    {
    private readonly List<Int32> list = new List<Int32>();

    public List<Int32> ListProp
    {
    get
    {
    return this.list; …

    11 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 →
  9. Using object comparing in the Select Case statement

    Select Object myobj
    ....Case obj1, obj2, obj3, obj4

    ....Case frm1

    End Select

    10 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    8 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  10. Add to Visual Basic the ability to declare a new strong type in terms of another type

    Many other languages have 'strong' typing. Java, C#, and VB have strong typing regarding classes, but not for the primitive numeric types. It can be a great aid to making large-scale industrial and commercial software. For example, if one could declare two different types Apples and Oranges:

    Type Apples Is New Integer
    Type Oranges Is New Integer
    ...
    Dim A As Apples = 3
    Dim B As Oranges = 4

    then accidentally mixing arithmetic or assignment between these types would be prevented by the compiler, e.g. the assignment:

    A = B

    would be rejected by the compiler (and Intellisense) as…

    10 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 →

    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

  11. Allow the subject of a With block to be referenced in the block using a new keyword WithRef

    Primarily, this is a convenience mechanism to avoid having to declare a variable in certain cases.

    Proposed:

    Function ReturnNewCheese(cheeseType as CheeseEnum) as Cheese
    With New Cheese
    .CheeseType = cheeseType 'property
    .Curdle 'method
    Helpers.DoSomethingWithCheese(WithRef)
    Return WithRef
    End With
    Exit Function

    Now:

    Function ReturnNewCheese(cheeseType as CheeseEnum) as Cheese
    Dim x as New Cheese
    With x
    .CheeseType = cheeseType
    .Curdle
    Helpers.DoSomethingWithCheese(x) 'requires explicit variable declaration
    End With
    Return x 'requires explicit variable declaration
    Exit Function

    10 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Languages - Visual Basic  ·  Flag idea as inappropriate…  ·  Admin →
  12. 9 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    10 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

  13. Bring the "Enable Single Instance Application" for VB.Net (WPF) on Framework 4.0

    Add the option of single instance application (program.. IDK) in VB.Net with WCF and .Net 4.0.
    We need to make single instance applications while using VB.net, too, not just VB!
    Example of program which needs it:

    C4D-Alpha: A launcher program which enables and launches some features on a specific program (external).
    C4D-Alpha saves the settings for next launch on every change.
    C4D-Alpha's best use is assigning it to a keyboard shortcut (ie. CTRL ALT SHIFT C) and then when its up (after a quarter of a second) press the corresponding key for the feature you want to launch.

    Link: http://www.mediafire.com/download.php?lz58m1zqaiidnfy

    8 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

  14. VB Interface Implementation Stubs: Allow creation of automatic-implemented properties

    When enter is pressed after specifying an interface that a class implements, generated property stubs include getters and setters. It would be nice if it at least prompted you or used an options setting to determine if auto-implemented properties, without getters/setters and member variables, should be created

    8 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

  15. Extend for each loops to be able to handle Linq clauses (eg. where, order by)

    At the moment, we have to use 2 lines to do the following...

    Dim ps = From p in People Where p.Active=True Order By p.Surname, p.FirstName

    For Each p In ps ...

    It would be neater to be able to write code such as

    For Each p In People Where p.Active=True Order By p.Surname, p.FirstName

    I don't see why this can't work with C# too.

    8 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

  16. Try with timeout

    It would be great to be able to add a timeout to a try catch. Something in this spirit:

    Try WithTimeOut(30s)
    ' do some long running stuff
    return "Stuff done"
    Catch(ex as TimeoutException)
    return "Timeout after 30 seconds"
    Catch(ex as Exception)
    return "Some other exception happened"
    End Try

    And of course the Return "Stuff done" would stop the timeout.

    7 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

  17. Start Making VB and C# closer to each other.

    Start Making VB and C# closer to each other in every future versions.
    And finally merge them in 5 or 6 versions from now. (when the differences will be almost nothing)

    7 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 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. Add first class method contracts to the language

    Add contracts to the method signature / declaration, such as in the following Midori language code:

    void Push(T element)
    requires element != null
    ensures this.Count == old.Count + 1
    {
    ...
    }

    At the start, this can be syntactic sugar for adding Debug.Assert statements ("requires" = at the beginning of the method, "assures" = at the end of the method), but ultimately first class method contracts can guide the compiler to perform better code optimizations, and also allow code quality issues to show up as compiler errors / warnings at compile time and not run time.

    (Ref: http://joeduffyblog.com/2015/12/19/safe-native-code/, section…

    7 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 →
  19. Addition of a 'With Each' Statement

    Rather than having to a With statement within a For statement, users would have the ability to consolidate the two statements.

    Example:
    Dim BigSpenders = (From Customer In Customers Where Customer.DollarsSpent > 1000 Select Customer)
    With Each Customer In Customers
    .RewardsProgram = True
    .StoreCredit = 50
    .Discount = 15
    Next

    7 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 →

    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

  20. Add new initialization way of memvars

    Add new initialization way of memvars:
    x,y = 0
    x,y,z = 1,2,3
    a,b,c = MyFunction()

    Function MyFunction() as byte, byte, int
    return 1,2,3

    6 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