| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1814 人关注过本帖, 1 人收藏
标题:求助高手,可以帮我解决两个问题吗?
只看楼主 加入收藏
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
结帖率:73.68%
收藏(1)
已结贴  问题点数:10 回复次数:23 
求助高手,可以帮我解决两个问题吗?
1206010052杨以勒第七次作业.zip (55.92 KB)
  
第一个是点击结账窗体中的返回按钮,让Form1出现不消失。。
第二个是在菜名多选时,在已选菜单上出现正确效果,而我这个现在是第一次多选菜名不会出问题,然后接着再多选一次就出现问题,问题就是:在已选菜名上只有第一行才加一份,下面几个菜名都不加,,
搜索更多相关主题的帖子: 按钮 
2013-04-11 23:29
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
正在查看中。。。。。
2013-04-11 23:50
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
第一个问题:结账.cs中
 private void button1_Click(object sender, EventArgs e)
        {
            this.f1.Show();
            this.fm.Show();
            this.Close();
        }
的this.Close()应该为this.Hide();
2013-04-11 23:54
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
第二个问题没弄明白问题是什么
2013-04-11 23:56
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:10 
我来说第二个问题吧
private void toolStripLabel1_Click(object sender, EventArgs e)
        {
           // for (int i = 0; i < listView1.CheckedItems.Count; i++)
           // {
               
                //listView2.Items.Add(listView1.CheckedItems[i]);
               // string [] fm = new ListViewItem();
                //fm = listView1.CheckedItems[i];
                //listView2.Items.AddRange(fm);
                //ListView[] fm = new ListView();
                //listView2.Items.AddRange(fm);
           // }
            //先完成一个。
           // ListViewItem[] items = new ListViewItem();
            //listView1.CheckedItems.CopyTo(items);
            bool flag = false;  //定义一个标记
            if (listView1.SelectedItems.Count == 0)
            {
                MessageBox.Show("先选择菜");
                return;
            }
            for (int j = 0; j < listView1.SelectedItems.Count;j++ )
            {
                flag = false;   //每一个菜进来以后,都把标记初始为false
                ListViewItem item = listView1.SelectedItems[j];
                //listView2.Items.Add();
                for (int i = 0; i < listView2.Items.Count; i++)
                {
                  
                    string s = listView2.Items[i].Text;
                    if (s == listView1.SelectedItems[j].Text)
                    {
                        int x = int.Parse(listView2.Items[i].SubItems[2].Text);
                        x++;
                        listView2.Items[i].SubItems[2].Text = x.ToString();
                        //return;       //这里不能用return,return就退出方法了,点的二个菜就不会被循环到
                        flag = true;    //如果该菜名已被点过,就设置为true
                        break;          //退出已点菜的循环,但不退出菜名的循环,因为还要循环点的下一个菜
                    }
                }
                if (flag == false)  //判断菜名是否已被点过,如点过,那flag就是true,就不用添加已点菜,如没有点过,flag就是false,就加一项
                {
                    listView2.Items.Add(listView1.SelectedItems[j].Text);
                    listView2.Items[listView2.Items.Count - 1].SubItems.Add(listView1.SelectedItems[j].SubItems[1].Text);
                    listView2.Items[listView2.Items.Count - 1].SubItems.Add("1");
                }
            //以上先for与先加如果调换就不同。。结果会出错,原因:         
            }
        }
2013-04-12 05:56
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
以下是引用八画小子在2013-4-11 23:54:39的发言:

第一个问题:结账.cs中
 private void button1_Click(object sender, EventArgs e)
        {
            this.f1.Show();
            this.fm.Show();
            this.Close();
        }
的this.Close()应该为this.Hide();
可是如果隐藏的话,我在想应该会出现一个问题,就是说在后面几次的结账中会把前面隐藏的还在的价格也一起加上,那就出现错误了。。可是为什么结果并没有这样,而且代码也没有写将以前的清空(即刷新),结果反而是正确的???这里不懂,,
2013-04-12 10:14
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
额,两位大神,突然发现还有另外一个问题,就是“删除一份”那个控件,每次当已选菜名份数为一时就出现问题,自己试过加return或者continue或者break,都没用,不知道问题出在哪。。
2013-04-12 11:13
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
之前因为有人回答了第一个问题,所以我就没有注意看,其实第一个问题不该那样解决
private void 结账_FormClosed(object sender, FormClosedEventArgs e)
{
    //Application.Exit();   你在结账的窗体关闭事件中,写了退出程序,所以结账窗体Close()的时候,整个程序都退出了,所以当然不行了
}
private void button1_Click(object sender, EventArgs e)
{
    this.f1.Show();
    //this.fm.Show();    这句可以不用要,主窗体显示后里面的控件就是显示的,除非你单独隐藏过控件
    this.Close();
}

可是如果隐藏的话,我在想应该会出现一个问题,就是说在后面几次的结账中会把前面隐藏的还在的价格也一起加上,那就出现错误了。。可是为什么结果并没有这样,而且代码也没有写将以前的清空(即刷新),结果反而是正确的???这里不懂,,
private void toolStripLabel3_Click(object sender, EventArgs e)
{
    结账 f2 = new 结账(this,this.listView2);   
    f2.Show();
    this.Hide();
}
因为你每次结账的时候,结账窗体的对象是重新new的,并非使用的是之前隐藏的那个,之前隐藏的那个结账窗体,引用已不存在了,在内存中等待自动回收而已.因为是重新new的,结果当然正确,至于隐藏了结账窗体,并非好办法,所以在结账窗体的button1_Click事件中,Close()结账窗体是正确的,而不是隐藏它.

[ 本帖最后由 yhlvht 于 2013-4-12 13:31 编辑 ]
2013-04-12 13:28
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
以下是引用lelejiayou在2013-4-12 11:13:07的发言:

额,两位大神,突然发现还有另外一个问题,就是“删除一份”那个控件,每次当已选菜名份数为一时就出现问题,自己试过加return或者continue或者break,都没用,不知道问题出在哪。。


我操作的时候没发现有什么问题啊
2013-04-12 13:30
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
以下是引用yhlvht在2013-4-12 13:30:01的发言:

 
 
我操作的时候没发现有什么问题啊
有的,就是删除一份这个控件,一开始先点菜点了好多,然后持续点击“删除一份”这个控件,一开始并没有什么错误,但删到快没了的时候,错误就出现了,,你再试试吧,,麻烦你了,,
2013-04-12 13:35
快速回复:求助高手,可以帮我解决两个问题吗?
数据加载中...
 
   



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

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