当前位置:编程学习 > C#/ASP.NET >>

菜鸟求解,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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,