列表控件数据操作辅助类

翻译|其它|编辑:郝浩|2007-10-17 14:53:46.000|阅读 969 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

在使用  listbox,checklistbox  时,取出的值总想要自己定义的任意对象,同时可以方便的操作

listbox,checklistbox,所以写了这个辅助类  HlListView

使用方法

 1.设置 listbox,checklistb 值

             ArrayList list =new ArrayList();
             testData tmp1 = new testData("测试数据类1", 10);
             testData tmp2 = new testData("测试数据类2", 2);
             testData tmp3 = new testData("测试数据类3", 5);
             list.Add(tmp1);
             list.Add(tmp2);
             list.Add(tmp3);
             HlListView.setValue(this.listBox2,list,"Name","Age");
             HlListView.setValue(this.checkedListBox2, list, "Name","Age");
2.获得 listbox,checklistbox 值

               //获得 listbox 值
             Object value = HlListView.getSelectValue(this.listBox2);
            if ( value != null)...{
                Console.WriteLine("name ="+  ((testData) value).Name );
            }
            //获得 checklistbox 值
            Object[] values = HlListView.getCheckedValues(this.checkedListBox2);
            if (values != null) ...{
                for (int i = 0; i < values.Length; i++) ...{
                    Console.WriteLine("checkselect="+i+",name =" + ((testData)values[i]).Name);
                }
            }

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace hllib.com.huanglin.ui
...{
    /**//// <summary>
    /// 列表控件数据操作辅助类
    /// </summary>
    public class HlListView
    ...{
        /**//// <summary>
        /// 给列表增加数据
        /// </summary>
        public static void setValue(ListBox listbox, ArrayList list, String viewfield, String keyfield)
        ...{
            int count = list.Count;
            if (count > 0)
            ...{
                ListData[] datalist = new ListData[count];
                for (int i = 0; i < count; i++)
                ...{
                    ListData data = new ListData();
                    data.Viewfield = viewfield;
                    data.Keyfield = keyfield;
                    data.Value = list[i];
                    datalist[i] = data;
                }
                listbox.DataSource = datalist;
            }
        }
       
        /**//// <summary>
        /// 给列表增加数据
        /// </summary>
        public static void setValue(CheckedListBox listbox, ArrayList list, String viewfield,String

keyfield)
        ...{
            int count = list.Count;
            if (count > 0)
            ...{
                ListData[] datalist = new ListData[count];
                for (int i = 0; i < count; i++)
                ...{
                    ListData data = new ListData();
                    data.Viewfield = viewfield;
                    data.Keyfield = keyfield;
                    data.Value = list[i];
                    datalist[i] = data;
                   
                }
                listbox.Items.AddRange(datalist);
            }
        }
 
        /**//// <summary>
        /// 获得选中的对象值
        /// </summary>
        public static Object getSelectValue(ListBox listbox)
        ...{
            Object rtn = null;
            if (listbox.SelectedItem != null)
            ...{
                rtn = ((ListData)listbox.SelectedItem).Value;
            }
             return rtn;
        }

        /**//// <summary>
        /// 取得选中的变量值
        /// </summary>
        public static Object getSelectValue(CheckedListBox listbox)
        ...{
            Object rtn = null;
            if (listbox.SelectedItem != null)
            ...{
                rtn = ((ListData)listbox.SelectedItem).Value;
            }
            return rtn;
        }
      
        /**//// <summary>
        /// 取得选中的变量值数组
        /// </summary>
        public static Object[] getSelectValues(ListBox listbox)
        ...{
            Object[] rtn = null;
            int count = listbox.SelectedItems.Count;
            if (count > 0)
            ...{
                rtn = new Object[count];
                for (int i = 0; i < count; i++)
                ...{
                    rtn[i] = ((ListData)listbox.SelectedItems[i]).Value;
                }
            }
            return rtn;
        }
      
        /**//// <summary>
        /// 取得选中的变量值数组
        /// </summary>
        public static Object[] getSelectValues(CheckedListBox listbox)
        ...{
            Object[] rtn = null;
            int count =listbox.SelectedItems.Count ;
            if (count> 0)
            ...{
                rtn = new Object[count];
                for (int i = 0; i < count; i++)
                ...{
                    rtn[i] = ((ListData)listbox.SelectedItems[i]).Value;
                }
            }
            return rtn;
        }

        /**//// <summary>
        /// 取得复选框选中的变量值数组
        /// </summary>
        public static Object[] getCheckedValues(CheckedListBox listbox)
        ...{
            Object[] rtn = null;
            int count = listbox.CheckedItems.Count;
            if (count > 0)
            ...{
                rtn = new Object[count];
                for (int i = 0; i < count; i++)
                ...{
                    rtn[i] = ((ListData)listbox.CheckedItems[i]).Value;
                }
            }
            return rtn;
        }
      
        /**//// <summary>
        /// 按对象值设置复选框选中值
        /// </summary>
        public static void setCheckedValues(CheckedListBox listbox, Object[] values) ...{
            int count = listbox.Items.Count;
            if (values.Length > 0)
            ...{
                for (int k = 0; k < count; k++)
                    listbox.SetItemChecked(k, false);
                for (int i = 0; i < values.Length; i++)
                ...{
                    for (int j = 0; j < count; j++) ...{
                        if (((ListData)listbox.Items[j]).Equals(values[i]))
                            listbox.SetItemChecked(j, true);
                    }
                }
            }
        }

        /**//// <summary>
        /// 按关键字值设置复选框选中值
        /// </summary>
        public static void setCheckedKeyValues(CheckedListBox listbox, Object[] keyvalues)
        ...{
            int count = listbox.Items.Count;
            if (keyvalues.Length > 0)
            ...{
                for (int k = 0; k < count; k++)
                    listbox.SetItemChecked(k, false);
                for (int i = 0; i < keyvalues.Length; i++)
                ...{
                    for (int j = 0; j < count; j++)
                    ...{
                        if (((ListData)listbox.Items[j]).getKeyValue().Equals(keyvalues[i]))
                            listbox.SetItemChecked(j, true);
                    }
                }
            }
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Text;
using hllib.com.huanglin.utils;

namespace hllib.com.huanglin.ui
...{
    /**//// <summary>
    /// 列表数据模型
    /// </summary>
    /// <remarks>主要用于列表的数据的加工,便于列表显示数据,并能取得对应的对象</remarks>
    class ListData
    ...{
        /**//// <summary>
        /// 显示值域名
        /// </summary>
        private String viewfield;
        /**//// <summary>
        /// 关键字值域名
        /// </summary>
        private String keyfield;

        /**//// <summary>
        /// 关键字值域名
        /// </summary>
        public String Keyfield
        ...{
            get ...{ return keyfield; }
            set ...{ keyfield = value; }
        }

        /**//// <summary>
        /// 显示值域名
        /// </summary>
        public String Viewfield
        ...{
            get ...{ return viewfield; }
            set ...{ viewfield = value; }
        }
        /**//// <summary>
        /// 值对象
        /// </summary>
        private Object value;

        /**//// <summary>
        /// 值对象
        /// </summary>
        public Object Value
        ...{
            get ...{ return this.value; }
            set ...{ this.value = value; }
        }
        /**//// <summary>
        /// 取得关键字值
        /// </summary>
        public Object getKeyValue() ...{
            Object rtn = null;
            try
            ...{
                if (value != null)
                    rtn = ClassUtils.getFieldValue(value, keyfield);
            }
            catch (Exception)
            ...{

            }
            return rtn;
        }
        /**//// <summary>
        /// 取得显示值
        /// </summary>
        public Object getViewValue()
        ...{
            Object rtn = null;
            try
            ...{
                if (value != null)
                    rtn = ClassUtils.getFieldValue(value, viewfield);
            }
            catch (Exception)
            ...{

            }
            return rtn;
        }
        /**//// <summary>
        /// 用于列表显示
        /// </summary>
        public override string ToString()
        ...{
            String rtn ="";
            try
            ...{
                if (value != null)
                    rtn = ClassUtils.getFieldValue(value, viewfield).ToString();
            }
            catch (Exception)
            ...{
            }
            return rtn;
        }
    }
}
 

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

namespace hllib.com.huanglin.utils
...{
    /**//// <summary>
    /// 类操作工具
    /// </summary>
    public class ClassUtils
    ...{
       
        /**//// <summary>
        /// 判断当前对象是否是类
        /// </summary>
        public static Boolean isClass(String classname, Object obj)
        ...{
            Boolean rtn = false;
            if (obj == null) return rtn;
            if (classname == null) return rtn;
            Type type = obj.GetType().GetInterface(classname);
            if (obj.GetType().FullName.Equals(classname))
                rtn = true;
            return rtn;
        }

        /**//// <summary>
        /// 判断当前对象是否是类
        /// </summary>
        public static Boolean isClass(Type type, Object obj) ...{
            Boolean rtn = false;
            if (type == null) return rtn;
            if (obj == null) return rtn;
            if (type.Equals(obj.GetType()))
                rtn = true;
            return rtn;
        }

        /**//// <summary>
        /// 判断当前对象是否有接口
        /// </summary>
        public static Boolean isInterface(String interfacename, Object obj)
        ...{
            Boolean rtn = false;
            if (obj == null) return rtn;
            if (interfacename == null) return rtn;
            Type type = obj.GetType().GetInterface(interfacename);
            if (type != null)
                rtn = true;
            return rtn;
        }

        /**//// <summary>
        /// 获得对象指定属性的值
        /// </summary>
        public static Object getFieldValue(Object obj, String fieldname)
        ...{
            Object rtn = null;
            try
            ...{
                rtn = obj.GetType().InvokeMember(fieldname, BindingFlags.GetProperty, null, obj, null);
            }
            catch (Exception)
            ...{
            }
            return rtn;
           
        }

        /**//// <summary>
        /// 获得对象属性类型名
        /// </summary>
        public static String getPropertyTypeName(Object obj,String fieldname) ...{
            return obj.GetType().GetProperty(fieldname).PropertyType.FullName;
        }

        /**//// <summary>
        /// 获得对象属性类型
        /// </summary>
        public static Type getPropertyType(Object obj, String fieldname)
        ...{
            return obj.GetType().GetProperty(fieldname).PropertyType;
        }

        /**//// <summary>
        /// 设置对象指定属性的值
        /// </summary>
        public static void setFieldValue(Object obj,String fieldname,Object value) ...{
            try
            ...{

                obj.GetType().InvokeMember(fieldname, BindingFlags.SetProperty, null, obj, new

Object[] ...{ value });
            }
            catch (Exception)
            ...{
            }
        }

        /**//// <summary>
        /// 调用没有返回值得方法
        /// </summary>
        public static void callNoReturnProcedure(Object obj ,String procedure,Object[] vars) ...{
            try
            ...{
                obj.GetType().InvokeMember(procedure, BindingFlags.InvokeMethod |

BindingFlags.Public | BindingFlags.Instance, null, obj, null);
            }
            catch (Exception)
            ...{
            }
        }

        /**//// <summary>
        /// 获得 String 类型
        /// </summary>
        public static Type getTypeString()
        ...{
            return Type.GetType("System.String");
        }
        /**//// <summary>
        /// 获得 Int16类型
        /// </summary>
        public static Type getTypeInt16()
        ...{
            return Type.GetType("System.Int16");
        }
        /**//// <summary>
        /// 获得 Int32类型
        /// </summary>
        public static Type getTypeInt32()
        ...{
            return Type.GetType("System.Int32");
        }
        /**//// <summary>
        /// 获得 Int64类型
        /// </summary>
        public static Type getTypeInt64()
        ...{
            return Type.GetType("System.Int64");
        }
        /**//// <summary>
        /// 获得 Double 类型
        /// </summary>
        public static Type getTypeDouble()
        ...{
            return Type.GetType("System.Double");
        }

        /**//// <summary>
        /// 获得 DateTime 类型
        /// </summary>
        public static Type getTypeDateTime() ...{
            return Type.GetType("System.DateTime");
        }
        /**//// <summary>
        /// 获得 Boolean 类型
        /// </summary>
        public static Type getTypeBoolean() ...{
            return Type.GetType("System.Boolean");
        }

        /**//// <summary>
        /// 获得 Decimal 类型
        /// </summary>
        public static Type getTypeDecimal()...{
            return Type.GetType("System.Decimal");
        }
    }
}


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:csdn

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP