Новичок здесь, в C#.
Я хотел сделать проект в C# с помощью WPF. Я впервые делаю это. Все работали нормально, кроме того, что FoterbrowserDialog и system.windows.forms.dialogresult.ok не может использоваться, поскольку они зависят от system.windows.forms . Мой код состоит из следующего: < /p>
using System.Windows.Forms;
using Microsoft.Win32;
using System;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace DownloadCleaner
{
public partial class MainWindow : Window
{
public ObservableCollection Files { get; set; } = new ObservableCollection();
public MainWindow()
{
InitializeComponent();
FilesGrid.ItemsSource = Files;
LoadFiles(GetDefaultFolder("Downloads"));
}
private string GetDefaultFolder(string name)
{
string basePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
return Path.Combine(basePath, name);
}
private void LoadFiles(string folderPath)
{
Files.Clear();
if (!Directory.Exists(folderPath)) return;
var fileInfos = new DirectoryInfo(folderPath).GetFiles()
.Select(f => new FileItem
{
Name = f.Name,
SizeMB = Math.Round(f.Length / (1024.0 * 1024.0), 2),
LastAccessed = f.LastAccessTime,
CreationTime = f.CreationTime,
DaysUnused = (DateTime.Now - f.LastAccessTime).TotalDays,
FullPath = f.FullName
})
.OrderByDescending(f => f.DaysUnused);
foreach (var file in fileInfos)
Files.Add(file);
}
private void FolderSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selected = (FolderSelector.SelectedItem as ComboBoxItem)?.Content.ToString();
if (selected == "Choose another folder...")
{
using var dialog = new FolderBrowserDialog();
dialog.Description = "Select a folder to scan";
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
LoadFiles(dialog.SelectedPath);
}
else if (!string.IsNullOrEmpty(selected))
{
LoadFiles(GetDefaultFolder(selected));
}
}
private void DeleteFile_Click(object sender, RoutedEventArgs e)
{
if (sender is System.Windows.Controls.Button btn && btn.Tag is string path)
{
try
{
File.Delete(path);
var item = Files.FirstOrDefault(f => f.FullPath == path);
if (item != null) Files.Remove(item);
}
catch (Exception ex)
{
System.Windows.MessageBox.Show($"Error deleting file: {ex.Message}");
}
}
}
}
public class FileItem
{
public string Name { get; set; }
public double SizeMB { get; set; }
public DateTime LastAccessed { get; set; }
public DateTime CreationTime { get; set; }
public double DaysUnused { get; set; }
public string FullPath { get; set; }
}
}
< /code>
Две ошибки, которые я получаю: < /p>
Имя типа или пространства имен Тип или имя пространства имен 'Dialogresult' не существует в пространстве имен 'System.Windows.forms' (вам не хватает ссылки на сборку?) .csproj file: < /p>
// more properties
true
true
< /code>
Опять же, восстановление и те же ошибки.
// more items
< /code>
Но опять же, те же две ошибки сохраняются. Я не знаю, какие другие варианты должны сделать.
Версия для фреймворта v4.7.2. < /P>
Есть идеи? < /P>
Подробнее здесь: https://stackoverflow.com/questions/795 ... references
C# Project не может найти System.windows.forms даже с ссылками ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение