VS2019导入窗体/控件后Designer与Resx无法正常显示求助
问题描述
在Visual Studio 2019中创建新项目后,通过「添加现有项」导入了其他项目的若干User Control和Form。打开这些控件或窗体时,Designer显示空白,但右键跳转代码能正常定位到对应位置。需要用Designer修改控件内容,且已确认命名空间正确,求解决办法。
编辑#1
我检查了项目文件,看起来没问题,但可能有遗漏:
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectGuid>{90E9229F-A341-48A6-9951-3373A87B5D19}</ProjectGuid> <OutputType>WinExe</OutputType> <RootNamespace>SSS.SuburbanRemoteOperations</RootNamespace> <AssemblyName>RemoteOps</AssemblyName> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <Deterministic>true</Deterministic> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <PropertyGroup> <StartupObject>SSS.SuburbanRemoteOperations.Program</StartupObject> </PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.Data" /> <Reference Include="System.Deployment" /> <Reference Include="System.Drawing" /> <Reference Include="System.Net.Http" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <Compile Include="AppStyle.cs" /> <Compile Include="BaseForm.cs"> <SubType>Form</SubType> </Compile> <Compile Include="BaseForm.Designer.cs" /> <Compile Include="Controls\CustomerInquiryBannerControl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Include="Controls\CustomerInquiryBannerControl.Designer.cs" /> <Compile Include="Controls\CustomerInquiryControl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Include="Controls\CustomerInquiryControl.Designer.cs" /> <Compile Include="Controls\FooterControl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Include="Controls\FooterControl.Designer.cs" /> <Compile Include="Controls\GasCheck\GasCheckCommentsControl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Include="Controls\GasCheck\GasCheckCommentsControl.Designer.cs" /> <Compile Include="Controls\GasCheck\GasCheckMenuControl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Include="Controls\GasCheck\GasCheckMenuControl.Designer.cs" /> <Compile Include="Controls\GasCheck\GasCheck_TestControl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Include="Controls\GasCheck\GasCheck_TestControl.Designer.cs" /> <Compile Include="Controls\HeaderControl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Include="Controls\HeaderControl.Designer.cs" /> <Compile Include="Controls\MainControl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Include="Controls\MainControl.Designer.cs" /> <Compile Include="Controls\SettingsControl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Include="Controls\SettingsControl.Designer.cs" /> <Compile Include="CurrentCustomer.cs" /> <Compile Include="Forms\RequestSupport.cs"> <SubType>Form</SubType> </Compile> <Compile Include="Forms\RequestSupport.Designer.cs" /> <Compile Include="Global.cs" /> <Compile Include="MainMenu.cs"> <SubType>Form</SubType> </Compile> <Compile Include="MainMenu.Designer.cs" /> <Compile Include="Miscellaneous\Logging.cs" /> <Compile Include="Program.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <EmbeddedResource Include="BaseForm.resx" /> <EmbeddedResource Include="Controls\CustomerInquiryBannerControl.resx" /> <EmbeddedResource Include="Controls\CustomerInquiryControl.resx" /> <EmbeddedResource Include="Controls\FooterControl.resx" /> <EmbeddedResource Include="Controls\GasCheck\GasCheckCommentsControl.resx" /> <EmbeddedResource Include="Controls\GasCheck\GasCheckMenuControl.resx" /> <EmbeddedResource Include="Controls\GasCheck\GasCheck_TestControl.resx" /> <EmbeddedResource Include="Controls\HeaderControl.resx" /> <EmbeddedResource Include="Controls\MainControl.resx" /> <EmbeddedResource Include="Controls\SettingsControl.resx" /> <EmbeddedResource Include="Forms\RequestSupport.resx" /> <EmbeddedResource Include="MainMenu.resx" /> <EmbeddedResource Include="Properties\Resources.resx"> <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>Resources.Designer.cs</LastGenOutput> <SubType>Designer</SubType> </EmbeddedResource> <Compile Include="Properties\Resources.Designer.cs"> <AutoGen>True</AutoGen> <DependentUpon>Resources.resx</DependentUpon> <DesignTime>True</DesignTime> </Compile> <None Include="Properties\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> <LastGenOutput>Settings.Designer.cs</LastGenOutput> </None> <Compile Include="Properties\Settings.Designer.cs"> <AutoGen>True</AutoGen> <DependentUpon>Settings.settings</DependentUpon> <DesignTimeSharedInput>True</DesignTimeSharedInput> </Compile> </ItemGroup> <ItemGroup> <None Include="App.config" /> </ItemGroup> <ItemGroup> <Folder Include="Data\" /> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project>
解决建议
- 补全Designer文件的依赖关联:从项目文件看,所有
.Designer.cs文件都缺少<DependentUpon>节点,比如BaseForm.Designer.cs应该修改为:
所有控件和窗体的Designer文件都需要添加这个关联,让Visual Studio识别主文件和Designer文件的关系。<Compile Include="BaseForm.Designer.cs"> <DependentUpon>BaseForm.cs</DependentUpon> </Compile> - 清理重建项目:依次执行「生成」→「清理解决方案」、「生成解决方案」,然后重启Designer尝试打开。
- 检查Designer代码:打开
.Designer.cs文件,确认InitializeComponent()方法存在且代码完整,没有语法错误或缺失控件初始化逻辑。 - 清除Designer缓存:关闭Visual Studio,删除项目根目录下的
.vs隐藏文件夹,重新打开项目。 - 验证基类完整性:如果导入的控件/窗体继承自自定义基类(比如
BaseForm),确保基类代码没有在构造函数中加入运行时专属逻辑,且基类已正确编译。 - 检查资源文件:确认每个控件的
.resx文件命名和位置正确,没有损坏,且和主文件、Designer文件一一对应。
内容的提问来源于stack exchange,提问作者SomeoneSpecial
相关产品推荐
相关产品推荐

