标题:C#使用控件问题
只看楼主
曲院风荷
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-8-18
结帖率:100%
已结贴  问题点数:5 回复次数:7 
C#使用控件问题
日前,在C#教程上看到一段代码,编译调试后,结果不对。还请各位高手答疑解惑,不胜感激!!
代码功能:
设置两个button:button1,button2,显示和隐藏窗体,但是运行后,两个控件不起作用。
代码如下:
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }
        static int x = 200;
        static int y = 200;
        static int count = 0;
        private void button1_Click(Object sender, EventArgs e)
        {
           
            Form1 form2 = new Form1();
            form2.FormBorderStyle = FormBorderStyle.Fixed3D;
            form2.Cursor = Cursors.Hand;
            form2.SetDesktopLocation(x, y);
            form2.Visible = true;
            x += 30;
            y += 30;
            
            this.Activate();
            this.button1.Enabled = true;

            
            label1.Text="新窗体的坐标("+x+","+y+")";
            label2.Text="这是第"+count+"个窗体";
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            count += 1;
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            MessageBox.Show("Wrong");
            this.Hide();

        }
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            count -= 1;
            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Hide();
        }
搜索更多相关主题的帖子: 控件 
2010-08-18 18:47
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
得分:0 
在button1_Click里,调用form2.Show()或者form2.ShowDialog()
2010-08-18 19:51
曲院风荷
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-8-18
得分:0 
可是,已经有form2.Visible = true;了
我试了,还是不出结果啊,救命啊,
2010-08-19 09:47
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
得分:5 
回复 3楼 曲院风荷
重新尝试一下。呵呵,可能是你的控件的事件没有注册到。
程序代码:
 public Form1()
        {
            InitializeComponent();

            this.button1.Click +=new EventHandler(button1_Click);
            this.button2.Click +=new EventHandler(button2_Click);
            this.FormClosed += new FormClosedEventHandler(Form1_FormClosed);

            this.Load +=new EventHandler(Form1_Load);
            this.FormClosing +=new FormClosingEventHandler(Form1_FormClosing);
        }
        static int x = 200;
        static int y = 200;
        static int count = 0;
        private void button1_Click(Object sender, EventArgs e)
        {

            Form1 form2 = new Form1();
            form2.FormBorderStyle = FormBorderStyle.Fixed3D;
            form2.Cursor = Cursors.Hand;
            form2.SetDesktopLocation(x, y);
            form2.Visible = true;
            x += 30;
            y += 30;

            this.Activate();
            this.button1.Enabled = true;
            label1.Text = "新窗体的坐标(" + x + "," + y + "";
            label2.Text = "这是第" + count + "个窗体";
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            count += 1;
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            MessageBox.Show("Wrong");
            this.Hide();

        }
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            count -= 1;

        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Hide();
        }
    }

2010-08-19 09:57
曲院风荷
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-8-18
得分:0 
哦,这次成功了,为什么还要用代码注册,我看其他程序也没这个呀?
2010-08-19 10:28
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
得分:0 
其他程序有,只是你双击控件的时候,把注册事件生成在 FormXXX.Design.cs里面了。你可以看一下。
2010-08-19 11:35
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
得分:0 
看来是没有把 按钮 和 代码连接到一起, 点击按钮, 在事件属性的 Click 中下拉, 选择对应的函数名即可, 直接双击会生成新的函数.

用 C# 设计窗体的时候, 注意看 class 前面有一个 partial , 表示类的代码是拆成几部分的,
控件的大小, 位置, 事件连接等信息是放进 InitializeComponent() 的, 在 xxx.Desinger.cs 文件中.
2010-08-19 12:55
曲院风荷
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-8-18
得分:0 
哦,知道了,受教,呵呵。
2010-08-19 16:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-316126-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.098053 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved