| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1814 人关注过本帖, 1 人收藏
标题:求助高手,可以帮我解决两个问题吗?
只看楼主 加入收藏
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
之前因为有人回答了第一个问题,所以我就没有注意看,其实第一个问题不该那样解决
private void 结账_FormClosed(object sender, FormClosedEventArgs e)
{
    //Application.Exit();   你在结账的窗体关闭事件中,写了退出程序,所以结账窗体Close()的时候,整个程序都退出了,所以当然不行了
}
这里我不同意你的看法,虽然我写了Application.Exit(); 但这个是在我点击窗体的那个叉叉时才将整个程序退出的啊,而我当时就点击那个Button,应该与这里的Application.Exit(); 并没有关联,

如果我还是写close();的话,那么我点击结账窗体的button就不会出现form1(出现一下马上就消失),麻烦你再帮我看看,,谢谢了,,
2013-04-12 13:39
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
我知道了,我只是单选删除1份,多选删除确实有问题,因为你是循环的选中项再删除,但是当只有一份的时候,循环第一项后,你就删除了一项,也就listView2.SelectedItems.Count改变了,变少了,这时候循环已经不对了,所以后面的结果就不正确了.
例如:大白菜和土豆丝各一位,你循环应该要执行两次,但是第一次删除了大白菜,listView2.SelectedItems.Count就由2变为1了,再次循环的时候由于变量a已由0变为了1,而Count由2减少为了1,所以就直接跳出循环了
原因告诉你了,你先想想看能不能自己解决
2013-04-12 13:41
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
哦哦,我刚刚想错了,现在明白了,把这个Application.Exit();删掉就可以了,,那只剩下后面“删除一份”这个问题了,,
2013-04-12 13:43
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();
}
我之前没有用颜色标出来就不仔细看呀
2013-04-12 13:43
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
FormClosed事件是窗体关闭时触发,无论你是调用Close()方法,还是点叉
而这个事件主要是用于,你在关闭的时候,还想要做别的操作,像退出程序这种事,你不用做vs也会帮你做的
2013-04-12 13:46
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
嘿嘿,版主你人真好。谢谢了。。我再看看那个删除那个代码,看看自己能不能搞定。。
2013-04-12 13:53
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
我的想法是先把份数为一的都放到一个集合里,然后直接进入下个循环,等所有循环以后,再 listView2.Items.Remove(items);可这里出现问题又多了,,,搞不出来。。
2013-04-12 14:15
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
或者,直接在  listView2.Items.Remove(listView2.SelectedItems[a]);后面写上:listView2.SelectedItems.Count + 1,可是又出现错误    1    无法对属性或索引器“System.Windows.Forms.ListView.SelectedListViewItemCollection.Count”赋值 -- 它是只读的   每次想法总有,可就是做不出来,不是这个错误就是那个错误,,
2013-04-12 14:25
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
以下是引用lelejiayou在2013-4-12 14:15:31的发言:

我的想法是先把份数为一的都放到一个集合里,然后直接进入下个循环,等所有循环以后,再 listView2.Items.Remove(items);可这里出现问题又多了,,,搞不出来。。


这样当然是可以的了
private void toolStripLabel4_Click(object sender, EventArgs e)
        {
            //listView2.Items.Remove(listView2.SelectedItems);
            List<ListViewItem> list = new List<ListViewItem>();
            if (listView2.SelectedItems.Count == 0)
            {
                MessageBox.Show("请先选择要删除的菜");
            }
            else
            {
                for (int a = 0; a < listView2.SelectedItems.Count; a++)
                {
                    if (listView2.SelectedItems[a].SubItems[2].Text == "1")
                    {
                        list.Add(listView2.SelectedItems[a]);
                        //listView2.Items.Remove(listView2.SelectedItems[a]);
                    }
                    else
                    {
                        listView2.SelectedItems[a].SubItems[2].Text = (int.Parse(listView2.SelectedItems[a].SubItems[2].Text) - 1).ToString();    //上面if里面都知道写a,else里面怎么变成0了,这里改成a
                    }
                    //int y = int.Parse(listView2.SelectedItems[a].SubItems[1].Text);
                    //if (y != 1)
                    //{
                    //  y=y-1;
                    //}
                    //listView2.SelectedItems[a].SubItems[1].Text.ToString();

                }
                foreach (ListViewItem item in list)
                {
                    listView2.Items.Remove(item);
                }

            }
        }
2013-04-12 14:26
lelejiayou
Rank: 1
来 自:宁海
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-3-20
收藏
得分:0 
版主大哥,您是我亲哥,请问您几岁?我该叫您哥呢,还是叫叔,您真的太好了。。。
2013-04-12 14:31
快速回复:求助高手,可以帮我解决两个问题吗?
数据加载中...
 
   



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

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