菜鸟求解,C#里listbox的问题
现在做一个c#的客户端,读取一个OPC服务器数据如图:[img=http://b19.photo.store.qq.com/http_imgload.cgi?/rurl4_b=2531484a72f6128bae83136acb3c5548cd40f93a7b358556146dcebb4febd39e021efe56e73fe3007d9f4826ca33602e5891e87741bca75a5b5767a43fb2f0415b54bdfd8ce0b95f39180662e8b88ca8072d40a1][/img]
右边的几个textbox的数值对应的是listbox选定后的。
怎么能全部读出每个listbox项对应的每个textbox的值,然后赋值到一个string参数?
程序代码:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (itmHandleClient != 0)
{
this.txtTagValue.Text = "";
this.txtQualities.Text ="";
this.txtTimeStamps.Text = "";
Array Errors;
OPCItem bItem = KepItems.GetOPCItem(itmHandleServer);
//注:OPC中以1为数组的基数
int[] temp = new int[2] { 0, bItem.ServerHandle };
Array serverHandle = (Array)temp;
//移除上一次选择的项
KepItems.Remove(KepItems.Count, ref serverHandle, out Errors);
}
itmHandleClient = 1234;
KepItem = KepItems.AddItem(listBox1.SelectedItem.ToString(), itmHandleClient);
itmHandleServer = KepItem.ServerHandle;
}
catch(Exception err)
{
//没有任何权限的项,都是OPC服务器保留的系统项,此处可不做处理。
itmHandleClient = 0;
txtTagValue.Text = "Error ox";
txtQualities.Text = "Error ox";
txtTimeStamps.Text = "Error ox";
MessageBox.Show("此项为系统保留项:"+err.Message,"提示信息");
}
} --------------------编程问答--------------------
看不到图.. --------------------编程问答-------------------- 看不到么?再贴一个 --------------------编程问答-------------------- 顶一下 --------------------编程问答-------------------- 没人看看么?
--------------------编程问答-------------------- 图片看不到,怎么帮你啊 --------------------编程问答--------------------
不好意思,这张应该能看到了吧?
就是想读取这样的例如:
string a=”text1.控制器1.tag.345.good.2009-7-13.text1.控制器1.tag_1.398.192.2009-7-13……“
代码:
/// <summary>
/// 每当项数据有变化时执行的事件
/// </summary>
/// <param name="TransactionID">处理ID</param>
/// <param name="NumItems">项个数</param>
/// <param name="ClientHandles">项客户端句柄</param>
/// <param name="ItemValues">TAG值</param>
/// <param name="Qualities">品质</param>
/// <param name="TimeStamps">时间戳</param>
void KepGroup_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps)
{
//为了测试,所以加了控制台的输出,来查看事物ID号
// Console.WriteLine("********"+TransactionID.ToString()+"*********");
for (int i = 1; i <= NumItems; i++)
{
this.txtTagValue.Text = ItemValues.GetValue(i).ToString();
this.txtQualities.Text = Qualities.GetValue(i).ToString();
this.txtTimeStamps.Text = TimeStamps.GetValue(i).ToString();
}
}
/// <summary>
/// 选择列表项时处理的事情
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (itmHandleClient != 0)
{
this.txtTagValue.Text = "";
this.txtQualities.Text ="";
this.txtTimeStamps.Text = "";
Array Errors;
OPCItem bItem = KepItems.GetOPCItem(itmHandleServer);
//注:OPC中以1为数组的基数
int[] temp = new int[2] { 0, bItem.ServerHandle };
Array serverHandle = (Array)temp;
//移除上一次选择的项
KepItems.Remove(KepItems.Count, ref serverHandle, out Errors);
}
itmHandleClient = 1234;
KepItem = KepItems.AddItem(listBox1.SelectedItem.ToString(), itmHandleClient);
itmHandleServer = KepItem.ServerHandle;
}
catch(Exception err)
{
//没有任何权限的项,都是OPC服务器保留的系统项,此处可不做处理。
itmHandleClient = 0;
txtTagValue.Text = "Error ox";
txtQualities.Text = "Error ox";
txtTimeStamps.Text = "Error ox";
MessageBox.Show("此项为系统保留项:"+err.Message,"提示信息");
}
}
--------------------编程问答--------------------
Dictionary<string, Indi> arr = new Dictionary<string, Indi>();--------------------编程问答-------------------- 图片看不到,怎么帮你啊 --------------------编程问答-------------------- 谢谢,学习中…… --------------------编程问答-------------------- 图片能看到的啊,等几秒钟
private void button1_Click(object sender, EventArgs e)
{
Indi _indi = new Indi(textBox1.Text, textBox2.Text, comboBox1.SelectedItem.ToString(), int.Parse(textBox4.Text));
arr.Add(_indi.Code,_indi);
listBox1.Items.Add(_indi.Code);
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndex = 0;
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string _code = listBox1.SelectedItem.ToString();
foreach (KeyValuePair<string,Indi> kvp in arr)
{
if (kvp.Value.Code == _code)
{
textBox1.Text = kvp.Value.Code;
textBox2.Text = kvp.Value.Name;
comboBox1.SelectedItem = kvp.Value.Sex;
textBox4.Text = kvp.Value.Age.ToString();
}
}
}
}
public class Indi
{
public Indi(string code, string name, string sex, int age)
{
_code = code;
_name = name;
_sex = sex;
_age = age;
}
private string _code;
public string Code
{
get { return _code; }
set { _code = value; }
}
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private string _sex;
public string Sex
{
get { return _sex; }
set { _sex = value; }
}
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
}
补充:.NET技术 , C#