前往顾页
以后地位: 主页 > 收集编程 > .Net实例教程 >

treeView中连络listView利用实例及法度代码

时候:2012-05-04 00:18来源:知行网www.zhixing123.cn 编辑:麦田守望者

首要实现服从:

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

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

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

 

treeView中结合listView使用的例子 - Hope - Hope的博客

 

 

treeView中结合listView使用的例子 - Hope - Hope的博客

详细实现代码以下:

 

publicpartial 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);
returnds;
}

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);

}

privatevoid treeView1_AfterSelect(objectsender, 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();
}

privatevoid comboBox1_SelectedIndexChanged(objectsender, 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);
}
}
 

------分开线----------------------------
标签(Tag):C# C#实例教程 c#根本教程 C#源代码 c#技能
------分开线----------------------------
保举内容
猜你感兴趣