注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

一车,一房,一个温暖家

10万左右的车,80平方的房子,这是我奋斗的暖暖的家

 
 
 

日志

 
 

引用 treeView中结合listView使用的例子   

2015-06-25 06:32:26|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

主要实现功能:

当从左边选择rollno时,右边,显示“请选择学号”,用户选择学好后,“详细信息如下:”中会显示关于这个学好的所有记录。

当选择name时,右边显示“请选择姓名”,用户选择姓名,则“详细信息如下:”中会显示关于这个姓名的所有记录。

左边侧栏是一个treeView控件,右边详细信息中,有两个层叠的listView,当选择学生信息时,黄色的listview是可见的,当选择系部星系时,绿色的listview是可见的。

 

 

 

具体实现代码如下:

 

treeView中结合listView使用的例子 - H-Ming^9 - Not Afraid

 

treeView中结合listView使用的例子 - H-Ming^9 - Not Afraid

 

    public partial class Form1 : Form
    {
        string sql;
        SqlConnectionStringBuilder bldr;
        SqlConnection cn;
        string selstr;
        public Form1()
        {
            InitializeComponent();
            linkDatabase();
        }
        public void linkDatabase()
        {//连接数据库,打开连接
            bldr = new SqlConnectionStringBuilder();
            bldr.DataSource = "222.195.150.228";
            bldr.InitialCatalog = "shortmessage";
            bldr.IntegratedSecurity = false;      
            bldr.UserID = "shortmessage";
            bldr.Password = "shortmessageuser";
            cn = new SqlConnection(bldr.ConnectionString);
            cn.Open();
          
        }
        public void closeDatabase()
        {
            //关闭连接
            cn.Close();
        }
        public DataSet selectData(String sql)
        {
            //查询数据集并返回
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(sql, cn);
            SqlCommandBuilder cb = new SqlCommandBuilder(da);
            da.Fill(ds);           
            return ds;            
        }

        private void Form1_Load(object sender, EventArgs e)
                   

           //刚加载的时候,默认选中了姓名,所以属于student这一栏,用listview1显示,所以listview2是不可见得。       
            listView1.Visible = false;
            listView2.Visible  = false;
            listView1.GridLines = true;
            //listview1是用来显示学生信息的,此处添加列
            listView1.Columns.Add("name");
            listView1.Columns.Add("age");
            listView1.Columns.Add("rollno");
            listView1.View = View.Details;
            //listview2是用来显示系部信息的,此处添加列
            listView2.View = View.Details;
            listView2.GridLines = true;
            listView2.Columns.Add("deptName");
            listView2.Columns.Add("location");

            //添加student节点,其下有rollno,name,age.
            TreeNode t = new TreeNode("Student");
            treeView1.Nodes.Add(t);
            TreeNode t1 = new TreeNode("rollno");
            t.Nodes.Add(t1);
            TreeNode t2 = new TreeNode("name");
            t.Nodes.Add(t2);
            TreeNode t3 = new TreeNode("age");
            t.Nodes.Add(t3);           
            treeView1.SelectedNode =t1;

            //添加Departement节点,其下有deptname.
            TreeNode test = new TreeNode("Department");
            treeView1.Nodes.Add(test);
            TreeNode testone = new TreeNode("deptname");
            test.Nodes.Add(testone);

        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            comboBox1.Items.Clear();//先清空
            comboBox1.Text = "               <--请选择-->";
            selstr = treeView1.SelectedNode.Text;
          //如果用户选中的是name,age,rollno其中任何一项我们将显示student 的信息,显示在listview1上。否则其他信息显示在listview2上
            if (selstr.Equals("name") || selstr.Equals("age") || selstr.Equals("rollno"))
            {
                listView1.Visible = true;
                listView2.Visible  = false;
            }
            else
            {
                listView2.Visible = true ;
                listView1.Visible = false;
                    
            //在这里我们之判断这个三个节点,对于系部部分我们不判断    
            switch (selstr)
            {
                case "name":
                     label1.Text = "请选择姓名:";
                sql = "select name from test";
                    break;
                case "age":
                    label1.Text = "请选择年龄:";
                    sql = "select age from test";
                    break;
                case "rollno":
                    label1.Text = "请选择学号:";
                        sql = "select rollno from test";
                    break;
                default :                   
                     label1.Text = "请选择系部:";
                     break;

                    
                DataSet ds = selectData(sql);
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    comboBox1.Items.Add(row[0]);//因为选出来的只有一个字段,所以这里直接用row[0]来得到即可。
                }
                closeDatabase();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            listView1.Items.Clear();//清空listview中的内容
            listView2.Items.Clear();
            label2.Visible = true;
            if (selstr.Equals("name") || selstr.Equals("age") || selstr.Equals("rollno"))
            {

//添加的是student方面的信息,
                sql = "select name,age,rollno from test where " + selstr + "='" + comboBox1.SelectedItem.ToString().Trim() + "'";
                MessageBox.Show(sql);
                DataSet ds = selectData(sql);
                ListViewItem l = null;
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    l = new ListViewItem(row["name"].ToString());
                    l.SubItems.Add(row["age"].ToString());
                    l.SubItems.Add(row["rollno"].ToString());
                    listView1.Items.Add(l);
                }
            }
            else
            {
                ListViewItem l = new ListViewItem("computer");
                l.SubItems.Add("tingdao");
                listView2.Items.Add(l);
                      
        }

  评论这张
 
阅读(5)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018