Ich habe gerade angefangen, an c # zu arbeiten, und habe an einem Codebeispiel herumgespielt, das ich von einem Forum bekommen habe.
Dieser Code verwendet einen Namespace, using system.windows.forms
für den eine Fehlermeldung angezeigt wird:
Formulare sind im Namespace system.windows nicht vorhanden.
Auch bekomme ich einige Fehler zu undefinierten für sie relevanten senddown
und sendup
die ich glaube , in der seinen Forms
Namensraum.
Ich benutze Visual Studio 10 (mit .net Frame Work 4.0). Irgendeine Idee, wie man diesen Fehler behebt?
System.Windows.Forms
Antworten:
Erweitern Sie das Projekt in Lösung Baum,
right click
aufReferences
,Add Reference
wählen SieSystem.Windows.Forms
aufFramework
Registerkarte.Manchmal müssen Sie Verweise auf einige nicht standardmäßige Assemblys hinzufügen.
quelle
Falls jemand auf diesen Fehler stößt, wenn er versucht, auf Windows Forms-Komponenten in einer .NET Core 3+ WPF-App zu verweisen (was eigentlich nicht ungewöhnlich ist). Die Lösung besteht darin, in die .csproj-Datei zu gehen (doppelklicken Sie in VS2019 darauf) und sie dem Eigenschaftsgruppenknoten hinzuzufügen, der die Zielframeworks enthält. So was:
<PropertyGroup> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWPF>true</UseWPF> <UseWindowsForms>true</UseWindowsForms> </PropertyGroup>
quelle
Wenn Sie Windows Forms- Code in a schreiben .Net Core- App , ist es sehr wahrscheinlich, dass dieser Fehler auftritt:
Wenn Sie die Projektdatei im Sdk-Stil verwenden (was empfohlen wird), sollte Ihre * .csproj-Datei folgendermaßen aussehen:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <OutputType>WinExe</OutputType> <UseWindowsForms>true</UseWindowsForms> <RootNamespace>MyAppNamespace</RootNamespace> <AssemblyName>MyAppName</AssemblyName> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Windows.Compatibility" Version="3.0.0" /> </ItemGroup> </Project>
Achten Sie besonders auf diese Zeilen:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <OutputType>WinExe</OutputType> <UseWindowsForms>true</UseWindowsForms> <PackageReference Include="Microsoft.Windows.Compatibility" Version="3.0.0" />
Beachten Sie, dass Sie, wenn Sie WPF verwenden, während Sie auf einige WinForms-Bibliotheken verweisen, ebenfalls hinzufügen sollten
<UseWPF>true</UseWPF>
.quelle
Dieses Problem kann auftreten, wenn sich mehrere Projekte in einer Lösung befinden und sich eines davon physisch im Lösungsordner befindet. Ich habe dies gelöst, indem ich mit der rechten Maustaste auf diesen Ordner im Lösungsbaum geklickt habe -> und dann auf "Aus Projekt ausschließen" geklickt habe.
quelle