none
实在没想法为什么了...按钮控件第一次使用是正常的, 再次使用的时候就不正常了, 事件也没有发生 RRS feed

  • 问题

  • 自学....实在想不通是哪里出错了, 希望高手帮帮忙....

    click的代码是

    private void btnAnalysis_Click(object sender, EventArgs e)
            {
                List<int> mylist1 = new List<int>();
                List<int> mylist2 = new List<int>();
                myControl.GraphPane.CurveList.Clear();
                myControl.GraphPane.GraphObjList.Clear();
                if (IsNum(tbDataYear.Text) && tbDataYear.Text != "")
                {
                    conn.Open();
                    int dataYear = int.Parse(tbDataYear.Text);
                    SqlCommand cmd = new SqlCommand("SELECT DataMonth, Money FROM Analysis WHERE DataYear=" + dataYear + " ORDER BY DataMonth", conn);
                    int IsYearExist = (int)cmd.ExecuteScalar();
                    if (IsYearExist > 0)
                    {
                        SqlDataReader dr = cmd.ExecuteReader();
                        while (dr.Read())
                        {
                            mylist1.Add(int.Parse(dr["DataMonth"].ToString()));
                            mylist2.Add(int.Parse(dr["Money"].ToString()));
                        }
                        dr.Close();
                        conn.Close();
                        PointPairList pl = new PointPairList();
                        for (int i = 0; i < mylist1.Count; ++i)
                        {
                            pl.Add(mylist1[i], mylist2[i]);
                        }
                        myControl.GraphPane.AddCurve("MyCurve", pl, Color.Black);
                        myControl.AxisChange();
                        
                        cmd.Dispose();
                        InitializeComponent();
                        
                        this.SetStyle(ControlStyles.ResizeRedraw, true);
                    }
                    else
                    {
                        MessageBox.Show("该年份数据不存在!");
                    }
                }
                else
                {
                    MessageBox.Show("请正确输入年份!");
                }
    
            }

    然后还有个enter的事件

            private void tbDataYear_Enter(object sender, EventArgs e)
            {
                this.AcceptButton = btnAnalysis;
                tbDataYear.Clear();
            }

    第一次点绘制的按钮是正常的


    再重新换个值点就不对了


    在调试里面查

    - tbDataYear {Text = ""} System.Windows.Forms.TextBox

    不理解为什么我在这个控件里输入的2013, 而Text属性却是空的....

    想不通了....希望高手赐教!

    2013年3月8日 10:24

答案

  • 删除对于 InitializeComponent() 的调用,并使用其他的办法代替
    • 已标记为答案 Mini.Q 2013年3月8日 13:22
    • 取消答案标记 Mini.Q 2013年3月8日 13:22
    • 已标记为答案 Mini.Q 2013年3月8日 13:27
    2013年3月8日 13:14

全部回复