我的第一个c#练习程序,果然又出现问题了。。。在Form1_Load() not work。估计我的人品又出现问题了。
下面实现的功能很简单,就是声明一个label1然后,把它初始化赋值为hello,然后点击它的时候,它显示改为world。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Demo1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "hello";
}
private void label1_Click(object sender, EventArgs e)
{
label1.Text = "world";
}
}
}
然后按F5进行调试,运行后弹出页面显示label1控件的文字还是label1,而不是hello,点击之后显示world,说明上面标志的那句赋值无效。
问题产生的原因:代码中的Form1_Load()方法不是自动生成的,而是自己手动写的。所以里面有些配置没修改,导致Form1_Load()无效
下面介绍三个解决方案:
解决方法一: 删除这个方法,然后到设计界面那里,双击界面后,会发现自动生成了Form1_load(),然后再进行代码编写。
解决方法二: 增加一句代码,如下
public Form1()
{
InitializeComponent();
this.Load += new EventHandler(Form1_Load);
}
这样,自己手动写的Form1_Load()就有被执行了。
解决方法三:
将代码进行下面修改:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Demo1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label1.Text = "hello";
}
private void Form1_Load(object sender, EventArgs e)
{
//label1.Text = "hello";
}
private void label1_Click(object sender, EventArgs e)
{
label1.Text = "world";
}
}
}
这样也能想要的效果了。@_@|||
注:如果要修改控件的属性的话,直接在控件的属性那里进行修改就行。