none
关于TreeView绑定数组的问题 RRS feed

  • 问题

  • c# WinForm下,窗体左边有个TreeView和Button控件,右边有个dataGridView控件。

    现在有2个一维数组    this.m_author = new string[] //作者
        {
         "本刊编辑部",
         "万建华 刘永春",
         "陈进",
         "周霖",
         "胡东胜 苏思昶",
         "廖孝明",
         "杨长红"

    }

       this.m_title = new string[]  //标题
        {
         "恰是一年春好处",
         "新千年已获开门红 银行卡必乘千里马",
         "电子货币的社会化功能与发展",
         "加强安全防范手段确保银行卡交易安全",
         "中国银行卡产业化发展问题初探",
         "必须重视银行卡业务人员队伍建设",
         "切莫让银行卡的风险管理走入误区"

    }

    TreeView如何绑定包含作者的数组中的数据。并且当点击其中一个字节点的时候,右边的dataGridView显示对应该作者文章的标题。

    请给出具体的代码供参考。

    谢谢!!!

     

     

    2008年11月5日 4:32

答案

  • 没看到你作者和文章怎么对应起来的,你可以采取下面的做法进行实现。

    Code Snippet



    string[] m_author, m_title;

    private void Form1_Load(object sender, EventArgs e)
    {
    this.m_author = new string[] //作者
    {
    "本刊编辑部",
    "万建华 刘永春",
    "陈进",
    "周霖",
    "胡东胜 苏思昶",
    "廖孝明",
    "杨长红"

    };

    this.m_title = new string[] //标题
    {
    "恰是一年春好处",
    "新千年已获开门红 银行卡必乘千里马",
    "电子货币的社会化功能与发展",
    "加强安全防范手段确保银行卡交易安全",
    "中国银行卡产业化发展问题初探",
    "必须重视银行卡业务人员队伍建设",
    "切莫让银行卡的风险管理走入误区"

    };

    for (int i = 0; i < this.m_author.Length; i++)
    {
    TreeNode newNode = new TreeNode(this.m_author[i]);
    this.treeView1.Nodes.Add(newNode);
    }
    }
    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {

    string nodetext = e.Node.Text;
    MessageBox.Show(nodetext);
    //根据这个值,去查找该作者的文章,然后显示到 dataGridView里即可

    }



    2008年11月5日 5:18
    版主

全部回复

  • 没看到你作者和文章怎么对应起来的,你可以采取下面的做法进行实现。

    Code Snippet



    string[] m_author, m_title;

    private void Form1_Load(object sender, EventArgs e)
    {
    this.m_author = new string[] //作者
    {
    "本刊编辑部",
    "万建华 刘永春",
    "陈进",
    "周霖",
    "胡东胜 苏思昶",
    "廖孝明",
    "杨长红"

    };

    this.m_title = new string[] //标题
    {
    "恰是一年春好处",
    "新千年已获开门红 银行卡必乘千里马",
    "电子货币的社会化功能与发展",
    "加强安全防范手段确保银行卡交易安全",
    "中国银行卡产业化发展问题初探",
    "必须重视银行卡业务人员队伍建设",
    "切莫让银行卡的风险管理走入误区"

    };

    for (int i = 0; i < this.m_author.Length; i++)
    {
    TreeNode newNode = new TreeNode(this.m_author[i]);
    this.treeView1.Nodes.Add(newNode);
    }
    }
    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {

    string nodetext = e.Node.Text;
    MessageBox.Show(nodetext);
    //根据这个值,去查找该作者的文章,然后显示到 dataGridView里即可

    }



    2008年11月5日 5:18
    版主
  •  

    谢谢,你给的代码虽然很少,但是很简单的解决了我的问题。

    如何把作者和标题联系起来呢?我现在是修改别人做过的,数组当中的数据是从一个文本里提出来的,我现在用的数组就是他根据文本里的数据写的。

    有个新问题,根据条件如何在dataGridView中显示数据?

    无条件显示数据的时候我是这么写的:

            DataTable m_titleTable()
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("标题", typeof(string));

                for (int i = 0; i < m_title.Length; i++)
                {
                    DataRow row = dt.NewRow();
                    row["标题"] = m_titleIdea;
                    dt.Rows.Add(row);
                }
                return dt;
            }
            void BinddataGridTable()
            {
                this.dataGridView1.DataSource = m_titleTable();
            }

     

    2008年11月5日 6:04