PDA

View Full Version : سوال: چه طور مي تونم تو اين كد با استفاده از CheckBox فقط موارد موردنطرم را انتخاب و چاپ كنم؟



bohrany
یک شنبه 11 مهر 1389, 00:11 صبح
سلام.كد زير اطلاعات سخت افزار سيستم رو بر مي گردونه.چه طور ميتونم با استفاده از CheckBox فقط موارد موردنظرمو كه تيك ميزنم چاپ كنم نه كل صفحه رو؟ ممنون



using System;
using System.Collections;
using System.Management;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace GetHardwareInfo
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void InsertInfo(string Key, ref ListView lst, bool DontInsertNull)
{
lst.Items.Clear();
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + Key);
try
{
foreach (ManagementObject share in searcher.Get())
{
ListViewGroup grp;
try
{
grp = lst.Groups.Add(share["Name"].ToString(), share["Name"].ToString());
}
catch
{
grp = lst.Groups.Add(share.ToString(), share.ToString());
}
if (share.Properties.Count <= 0)
{
MessageBox.Show("No Information Available", "No Information");
return;
}
foreach (PropertyData PC in share.Properties)
{
ListViewItem item = new ListViewItem(grp);
if (lst.Items.Count % 2 != 0)
item.BackColor = Color.Tan;
else
item.BackColor = Color.BurlyWood;
item.Text = PC.Name;
if (PC.Value != null && PC.Value.ToString() != "")
{
switch (PC.Value.GetType().ToString())
{
case "System.String[]":
string[] str = (string[])PC.Value;
string str2 = "";
foreach (string st in str)
str2 += st + " ";
item.SubItems.Add(str2);
break;
case "System.UInt16[]":
ushort[] shortData = (ushort[])PC.Value;

string tstr2 = "";
foreach (ushort st in shortData)
tstr2 += st.ToString() + " ";
item.SubItems.Add(tstr2);
break;
default:
item.SubItems.Add(PC.Value.ToString());
break;
}
}
else //if pc.value was null
{
if (!DontInsertNull)
item.SubItems.Add("No Information available");
else
continue;
}
lst.Items.Add(item);
}
}
}

catch (Exception exp) //couldnt get hardware information
{
MessageBox.Show("can't get data because of the followeing error \n" + exp.Message, "Error");
}

}
private void RemoveNullValue(ref ListView lst)
{
foreach (ListViewItem item in lst.Items)
if (item.SubItems[1].Text == "No Information available")
item.Remove();
}

#region Control events ...
private void cmbxNetwork_SelectedIndexChanged(object sender, EventArgs e)
{
InsertInfo(cmbxNetwork.SelectedItem.ToString(), ref lstNetwork, chkNetwork.Checked);
}
private void cmbxSystemInfo_SelectedIndexChanged(object sender, EventArgs e)
{
InsertInfo(cmbxSystemInfo.SelectedItem.ToString(), ref lstSystemInfo, chkSystemInfo.Checked);
}

private void cmbxStorage_SelectedIndexChanged(object sender, EventArgs e)
{
InsertInfo(cmbxStorage.SelectedItem.ToString(), ref lstStorage, chkDataStorage.Checked);
}

private void cmbxMemory_SelectedIndexChanged(object sender, EventArgs e)
{
InsertInfo(cmbxMemory.SelectedItem.ToString(), ref lstMemory, chkMemory.Checked);
}
private void chkHardware_CheckedChanged(object sender, EventArgs e)
{
if (chkHardware.Checked)
RemoveNullValue(ref lstDisplayHardware);
else
InsertInfo(cmbxOption.SelectedItem.ToString(), ref lstDisplayHardware, chkHardware.Checked);
}
private void cmbxOption_SelectedIndexChanged(object sender, EventArgs e)
{
InsertInfo(cmbxOption.SelectedItem.ToString(), ref lstDisplayHardware, chkHardware.Checked);
}
private void chkDataStorage_CheckedChanged(object sender, EventArgs e)
{
if (chkDataStorage.Checked)
RemoveNullValue(ref lstStorage);
else
InsertInfo(cmbxStorage.SelectedItem.ToString(), ref lstStorage, chkDataStorage.Checked);
}
private void chkMemory_CheckedChanged(object sender, EventArgs e)
{
if (chkMemory.Checked)
RemoveNullValue(ref lstMemory);
else
InsertInfo(cmbxMemory.SelectedItem.ToString(), ref lstStorage, false);
}
private void chkSystemInfo_CheckedChanged(object sender, EventArgs e)
{
if (chkSystemInfo.Checked)
RemoveNullValue(ref lstSystemInfo);
else
InsertInfo(cmbxSystemInfo.SelectedItem.ToString(), ref lstSystemInfo, false);
}
private void chkNetwork_CheckedChanged(object sender, EventArgs e)
{
if (chkNetwork.Checked)
RemoveNullValue(ref lstNetwork);
else
InsertInfo(cmbxNetwork.SelectedItem.ToString(), ref lstNetwork, false);
}

#endregion
private void lstNetwork_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void tabPage1_Click(object sender, EventArgs e)
{
}
private void lstSystemInfo_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void frmMain_Load(object sender, EventArgs e)
{
}
private void lstDisplayHardware_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void tabHardware_Click(object sender, EventArgs e)
{
}

}
}

mmd2009
یک شنبه 11 مهر 1389, 00:28 صبح
با سلام

دوست عزیز نگاه کردن به کدها با این وضعیت ظاهری چشم ادم رو کور میکنه. خود برنامه رو بذارید تا بشه کمک کرد

موفق باشید