Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support designer capabilities at runtime #4908

Closed
56 tasks done
RussKie opened this issue May 14, 2021 · 9 comments · Fixed by #4860 or #9703
Closed
56 tasks done

Support designer capabilities at runtime #4908

RussKie opened this issue May 14, 2021 · 9 comments · Fixed by #4860 or #9703
Assignees
Labels
area-DesignerSupport Epic Groups multiple user stories. Can be grouped under a theme. Priority:2 Work that is important, but not critical for the release tenet-compatibility Incompatibility with previous versions or with WinForms for .NET Framework

Comments

@RussKie
Copy link
Member

RussKie commented May 14, 2021

Context

The Windows Forms SDK consist of two distinct parts – the runtime (the code that executes, open sourced in this repo) and the designer (consists of the "general purpose" and "Visual Studio-specific" components, close sourced). In .NET Framework these two parts lived together, and that allowed customers to invoke and use VS-specific functionality. Skip forward to .NET Core/.NET and these two components are now split and evolve (for the most part) independently of each other.

The more and more customers are starting to migrate their apps to .NET the more we see the demand to the missing designer capabilities to be ported over to .NET (e.g. #1395, #2573, #4456, #4886, #4887, AB#1314797).

In scope:

However we need to port the general purpose designer infrastructure – i.e. API that enable building "a designer that the user can embed in their application". For example, a user might have a business application that contains a report designer feature, which can use our "general designer" framework.

  • The following designers are currently available (though may have restricted or incomplete functionality):

  • The following designers are missing and will be ported in scope of Port missing designer infra #4860:

    • System.Windows.Forms.Design.ButtonBaseDesigner
    • System.Windows.Forms.Design.ControlDesigner
    • System.Windows.Forms.Design.DocumentDesigner - functionality restored
    • System.Windows.Forms.Design.LabelDesigner
    • System.Windows.Forms.Design.ParentControlDesigner - functionality restored
    • System.Windows.Forms.Design.ScrollableControlDesigner - functionality restored
    • System.Windows.Forms.Design.TextBoxDesigner
    • System.Windows.Forms.Design.ComboBoxDesigner
    • System.Windows.Forms.Design.GroupBoxDesigner
    • System.Windows.Forms.Design.ListBoxDesigner
    • System.Windows.Forms.Design.ListViewDesigner
    • System.Windows.Forms.Design.PanelDesigner
    • System.Windows.Forms.Design.PictureBoxDesigner
    • System.Windows.Forms.Design.RadioButtonDesigner
    • System.Windows.Forms.Design.RichTextBoxDesigner
    • System.Windows.Forms.Design.TreeViewDesigner Port TreeNodeCollectionEditor to core #11221
    • System.Windows.Forms.Design.UpDownBaseDesigner
    • System.Windows.Forms.Design.UserControlDocumentDesigner

Open for consideration

The following API may be considered for porting upon significant demand and real use cases.

Out of scope

@RussKie RussKie added area-DesignerSupport Epic Groups multiple user stories. Can be grouped under a theme. labels May 14, 2021
@RussKie RussKie added this to the 6.0 milestone May 14, 2021
@RussKie RussKie self-assigned this May 14, 2021
@RussKie
Copy link
Member Author

RussKie commented May 14, 2021

Known Issues

  • There may be a mix of functionality between .NET 4.7.2 and VS copies - must be reconciled
  • Cannot use Ctrl+C/Ctrl+V/Ctrl+X to copy/paste/cut control
  • Dotline of TextBox is displayed incorrectly after checking MultLine then uncheck
    Repro Steps:
    1. Run the application
    2. Open smart tag of TextBox, check the MultLine and observe dotline
    3. Open smart tag again, uncheck MultLine and observe dotline again

@RussKie RussKie added the tenet-compatibility Incompatibility with previous versions or with WinForms for .NET Framework label May 14, 2021
@RussKie RussKie modified the milestones: 6.0, 7.0 Aug 27, 2021
@mansai
Copy link

mansai commented Nov 17, 2021

NET 6.0 Support designer
System.Windows.Forms.Design.DataGridViewDesigner

The VS-specific designer functionality will be made available, because it makes very sense outside the VS.

For example: User form Designer

@RussKie
Copy link
Member Author

RussKie commented Nov 18, 2021

Please elaborate and explain a use case where VS-centric designers is required outside VS.

@RussKie RussKie modified the milestones: 7.0, 6.0, 6.0 Preview5 Nov 18, 2021
@RussKie RussKie closed this as completed Nov 18, 2021
@ghost ghost removed this from the 6.0 Preview5 milestone Nov 18, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Jan 28, 2022
@merriemcgaw merriemcgaw reopened this May 30, 2023
@merriemcgaw
Copy link
Member

We are reopening this issue to collect requests for specific designers not yet implemented.

@dmitrii-drobotov
Copy link
Contributor

#8749 - SplitContainerDesigner
#8790 - TablelayoutPanelDesigner, TabControlDesigner

@Tanya-Solyanik Tanya-Solyanik modified the milestones: Future, .NET 8.0 Jul 14, 2023
@Tanya-Solyanik Tanya-Solyanik added the Priority:2 Work that is important, but not critical for the release label Jul 28, 2023
@Tanya-Solyanik Tanya-Solyanik removed this from the .NET 8.0 milestone Jul 28, 2023
@Tanya-Solyanik Tanya-Solyanik added this to the .NET 9.0 milestone Jul 28, 2023
@LeafShi1 LeafShi1 added the 🚧 work in progress Work that is current in progress label Jul 31, 2023
@ghost ghost removed the 🚧 work in progress Work that is current in progress label Aug 4, 2023
@ghost ghost removed this from the .NET 9.0 milestone Aug 18, 2023
@LeafShi1
Copy link
Member

LeafShi1 commented Aug 23, 2023

@Tanya-Solyanik Currently four designers have not been ported.

  • Can we remove AxDesigner and AxHostDesigner from the current Task?

The two controls are COM components. I tested these two designers according to the following steps,

_Creating ActiveX Control in Windows Forms Application_

1. Create a new MFC ActiveX Control project with name

MFCActiveXControl. Click Finish on setting window and build MFCActiveXControl.

2. Get file MFCActiveXControl.ocx from the Debug folder.


_To registe an ActiveX control with ocx file_

1. Copy AxImp.exe from SDK path and the ocx file to a new folder c:\school for instance.

2. Open a Command Prompt as Administrator and run command line

regsvr32.exe c:\school\{ocx file name}.

In this test the command line is

“regsvr32.exe c:\school\MFCActiveXControl.ocx”.

3. Run command line cd c:\school to locate\\ the path of AxImp.exe and run command line AXImp.exe MFCActiveXControl.Ocx.

_To test the ActiveX control in Windows Forms Application_

1. Open project Prj1, add a Tab to Toolbox named AxtiveXControl. Right Click to select Choose Items…, and choose COM Components, select MFCActiveXControl, and click OK.

2. Drag the MFCActiveXControl to the Form.

3. Build and run.

but there are some problems when Drag the MFCActiveXControl to the Form.
.netFramework App
image

.netcore app
image

And on the .Net Core designer, support for these two controls (AxHost/COM Control support in designer, Enable ActiveX Support) is still in progress.

  • .Net Core designer doesn't support StatusBarDesigner (deprecated controls removed) and WebBrowserDesigner, do we need to port them from VS?

@Tanya-Solyanik
Copy link
Member

  1. ActiveX related designers can be done later. Please create a new bug for them. WebBrowser control is backed up by and ActiveX as well, so it will be covered by that bug as well. We will use that bug for tracking any user requests.
  2. Since StatusBar control is deprecated, please cross out this designer from the list.

@Tanya-Solyanik
Copy link
Member

Let's close this one again when all outstanding PRs are merged.

@LeafShi1
Copy link
Member

  1. ActiveX related designers can be done later. Please create a new bug for them. WebBrowser control is backed up by and ActiveX as well, so it will be covered by that bug as well. We will use that bug for tracking any user requests.
  2. Since StatusBar control is deprecated, please cross out this designer from the list.

Track ActiveX related designers with issue #9810

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-DesignerSupport Epic Groups multiple user stories. Can be grouped under a theme. Priority:2 Work that is important, but not critical for the release tenet-compatibility Incompatibility with previous versions or with WinForms for .NET Framework
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants