ListBox实现简单选课系统

1.效果图

 异常处理

 正解

        //添加新的课程 
        private void btnAddCourse_Click(object sender, EventArgs e)
        {
            bool exit = false;
            if (txtCourse.Text == "")
                MessageBox.Show("所添加的课程不能为空。");
            else
            {
                for (int i = 0; i < lbCourse.Items.Count; i++)
                    if (txtCourse.Text == lbCourse.Items[i].ToString())
                    {
                        MessageBox.Show("不能添加重复的课程。");
                        exit = true;
                        txtCourse.Clear();
                        break;
                    }
                if (exit == false)
                {
                    lbCourse.Items.Add(txtCourse.Text);
                    txtCourse.Clear();
                }
            }
        }

 

//”->”按钮单击事件
private void btnToRight_Click(object sender, EventArgs e)
{
    try
    {
        this.lbSelectCourse.Items.Add(this.lbCourse.SelectedItem);
        this.lbCourse.Items.Remove(this.lbCourse.SelectedItem);
    }
    catch (Exception exp)
    {
         MessageBox.Show(exp.Message);
    }
}
//”<-”按钮单击事件
private void btnToLeft_Click(object sender, EventArgs e)
{
     try
     {
         this.lbCourse.Items.Add(this.lbSelectCourse.SelectedItem);
         this.lbSelectCourse.Items.Remove
                      (this.lbSelectCourse.SelectedItem);
     }
     catch (Exception exp)
     {
          MessageBox.Show(exp.Message);
     }
}
//”>>”按钮单击事件
private void btnToRightAll_Click(object sender, EventArgs e)
{
     for (int i = 0; i < this.lbCourse.Items.Count; i++)
     {
         this.lbSelectCourse.Items.Add(this.lbCourse.Items[i]);
     }
     this.lbCourse.Items.Clear();
}



//”<<”按钮单击事件
private void btnToLeftAll_Click(object sender, EventArgs e)
{
     for (int i = 0; i < this.lbSelectCourse.Items.Count; i++)
     {
          this.lbCourse.Items.Add(this.lbSelectCourse.Items[i]);
     }
     this.lbSelectCourse.Items.Clear();
}

错误代码!!!

 





        private void btn_submit_Click(object sender, EventArgs e)
        {
            //把新的课程添加到课程里面
            list_exist_course.Items.Add(txt_add.Text);
        }
        //把选中的item移到右边
        private void btn_right_Click(object sender, EventArgs e)
        {
            try
            {
                list_select_course.Items.Add(list_exist_course.SelectedItem);//把选中的放到右边
                list_exist_course.Items.Remove(list_exist_course.SelectedItem);//删掉选中的
            }
            catch (Exception)
            {

                MessageBox.Show("没有选中任何课程!");
               // throw;
            }
        }
        //把选中的item移到左边
        private void btn_left_Click(object sender, EventArgs e)
        {
            try
            {
                list_exist_course.Items.Add(list_select_course.SelectedItem);//把选中的放到左边
                list_select_course.Items.Remove(list_select_course.SelectedItem);//删掉选中的
            
            }
            catch (Exception)
            {
                MessageBox.Show("没有选中任何课程!");//异常没有抛出来
            }

        }

        private void btn_rightAll_Click(object sender, EventArgs e)
        {
           int a =0;
            while (a < 4)
            {//循环四次
                for (int i = 0; i < list_exist_course.Items.Count; i++)
                {
                    list_select_course.Items.Add(list_exist_course.Items[i]);//把左边的全部移动到右边
                    list_exist_course.Items.RemoveAt(i);
                }
                a++;
            }//循环四次
        }

        private void btn_leftALL_Click(object sender, EventArgs e)
        {
            int a =0;
            while (a < 4)
            {//循环四次
                for (int i = 0; i < list_select_course.Items.Count; i++)//把右边的全部左边
                {
                    list_exist_course.Items.Add(list_select_course.Items[i]);
                    list_select_course.Items.RemoveAt(i);
                }
                a++;
            }//循环四次

        }

 本程序还有很多不足希望大家指出来,欢迎留言

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Winform ListBox的分栏效果,可以使用它的MultiColumn属性来设置显示多列,同时设置ColumnWidth属性来指定每列的宽度,例如: ```csharp listBox1.MultiColumn = true; listBox1.ColumnWidth = 100; ``` 上面的代码将ListBox设置为显示多列,每列宽度为100像素。如果ListBox中的项数量超过了一列的显示范围,就会自动在下一列显示剩余的项。 如果需要在不同的列中显示不同的项,可以通过设置ListBox的DataSource属性来绑定数据源,然后利用数据源的分组功能来实现分栏效果。例如,可以将数据源按照分组字段进行分组,然后将每组数据绑定到ListBox的一个列上。具体实现方式可以参考以下示例代码: ```csharp // 创建数据源 var dataSource = new List<Item>(); dataSource.Add(new Item { Group = "A", Text = "Item A1" }); dataSource.Add(new Item { Group = "A", Text = "Item A2" }); dataSource.Add(new Item { Group = "B", Text = "Item B1" }); dataSource.Add(new Item { Group = "B", Text = "Item B2" }); dataSource.Add(new Item { Group = "B", Text = "Item B3" }); dataSource.Add(new Item { Group = "C", Text = "Item C1" }); // 按照分组字段进行分组 var groups = dataSource.GroupBy(item => item.Group); // 绑定数据源 listBox1.DataSource = groups.ToList(); listBox1.DisplayMember = "Key"; listBox1.ValueMember = "Key"; ``` 上面的示例代码将一个包含多个分组的数据源绑定到ListBox上,每个分组对应ListBox中的一个列。ListBox会根据数据源的分组情况自动创建多列,并将每组数据绑定到对应的列上。可以通过设置ListBox的DisplayMember和ValueMember属性来指定显示文本和值的字段。 希望这个示例代码能够帮助您实现Winform ListBox的分栏效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值