if() + switch() + 图片框 [C#]
if() + switch() + pictureBox [C#]
事情是这样的,我有一个 Windows 表单,里面有一个空的图片框和一些使用 wmi 获取系统信息的标签,图片框应该自动从在名为 Pictures 的项目中使用 if 语句或 switch case 的文件夹,但我无法为我的生活想出一些有用的东西。
基本思路是:
如果 OSN 包含一个 7,pictureBoxOS 从图片文件夹中获取名为 W7 的图像。
如果OSN包含一个8,pictureBoxOS从图片文件夹中获取名为W8的图片
依此类推
OSN 是 OS 姓名
下面是SysInfo中写的一些内容Class
public static class SysInfo
{
public static String GetOSName()
{
ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
ManagementObjectCollection moc = mc.GetInstances();
String OSN = String.Empty;
foreach (ManagementObject mo in moc)
{
OSN = mo.Properties["Caption"].Value.ToString();
break;
}
return OSN;
}
然后是表格中写的内容
public partial class FormSystemInfo : Form
{
public FormSystemInfo()
{
InitializeComponent();
LoadTheme();
}
private void FormSystemInfo_Load(object sender, EventArgs e)
{
labelOSName.Text=SysInfo.GetOSName();
labelOSVersion.Text=SysInfo.GetOSVersion();
labelBrandModel.Text=SysInfo.GetBrandModel();
labelProcessorName.Text=SysInfo.GetProcessorName();
labelMemory.Text=SysInfo.GetPhysicalMemory();
labelDriveID.Text=SysInfo.GetDriveID();
labelGPUName.Text=SysInfo.GetGPUName();
labelSerialNumber.Text = SysInfo.GetSerialNumber();
}
}
对于可能偶然发现此问题的任何人 post,我确实找到了使其工作的方法:
DirectoryInfo dir = new DirectoryInfo(Application.StartupPath);
ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
ManagementObjectCollection moc = mc.GetInstances();
String OSN = String.Empty;
foreach (ManagementObject mo in moc)
{
OSN = mo.Properties["Caption"].Value.ToString();
break;
}
if (OSN.Contains("7"))
{
string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W7.png";
pictureBoxOS.Image = Image.FromFile(path);
}
else if (OSN.Contains("8"))
{
string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W8.png";
pictureBoxOS.Image = Image.FromFile(path);
}
else if (OSN.Contains("10"))
{
string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W10.png";
pictureBoxOS.Image = Image.FromFile(path);
}
else if (OSN.Contains("11"))
{
string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W11.png";
pictureBoxOS.Image = Image.FromFile(path);
}
事情是这样的,我有一个 Windows 表单,里面有一个空的图片框和一些使用 wmi 获取系统信息的标签,图片框应该自动从在名为 Pictures 的项目中使用 if 语句或 switch case 的文件夹,但我无法为我的生活想出一些有用的东西。
基本思路是:
如果 OSN 包含一个 7,pictureBoxOS 从图片文件夹中获取名为 W7 的图像。
如果OSN包含一个8,pictureBoxOS从图片文件夹中获取名为W8的图片 依此类推
OSN 是 OS 姓名
下面是SysInfo中写的一些内容Class
public static class SysInfo
{
public static String GetOSName()
{
ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
ManagementObjectCollection moc = mc.GetInstances();
String OSN = String.Empty;
foreach (ManagementObject mo in moc)
{
OSN = mo.Properties["Caption"].Value.ToString();
break;
}
return OSN;
}
然后是表格中写的内容
public partial class FormSystemInfo : Form
{
public FormSystemInfo()
{
InitializeComponent();
LoadTheme();
}
private void FormSystemInfo_Load(object sender, EventArgs e)
{
labelOSName.Text=SysInfo.GetOSName();
labelOSVersion.Text=SysInfo.GetOSVersion();
labelBrandModel.Text=SysInfo.GetBrandModel();
labelProcessorName.Text=SysInfo.GetProcessorName();
labelMemory.Text=SysInfo.GetPhysicalMemory();
labelDriveID.Text=SysInfo.GetDriveID();
labelGPUName.Text=SysInfo.GetGPUName();
labelSerialNumber.Text = SysInfo.GetSerialNumber();
}
}
对于可能偶然发现此问题的任何人 post,我确实找到了使其工作的方法:
DirectoryInfo dir = new DirectoryInfo(Application.StartupPath);
ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
ManagementObjectCollection moc = mc.GetInstances();
String OSN = String.Empty;
foreach (ManagementObject mo in moc)
{
OSN = mo.Properties["Caption"].Value.ToString();
break;
}
if (OSN.Contains("7"))
{
string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W7.png";
pictureBoxOS.Image = Image.FromFile(path);
}
else if (OSN.Contains("8"))
{
string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W8.png";
pictureBoxOS.Image = Image.FromFile(path);
}
else if (OSN.Contains("10"))
{
string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W10.png";
pictureBoxOS.Image = Image.FromFile(path);
}
else if (OSN.Contains("11"))
{
string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W11.png";
pictureBoxOS.Image = Image.FromFile(path);
}