KyKiske22 2015-05-27 07:28 采纳率: 0%
浏览 3361

关于在C# Winform中的方法事件中使用大量if-else问题

winform运行比较顺利,但if-else代码太多 诸如如下情况
实现功能按钮:private void Button_Click(object sender,EventArgs e)
{
if ( listBox1.SelectedIndex==0)
{ a = int.Parse(DataText.Text);listBox1.SelectedIndex = 0; listBox1.Items[0] = "a的值为" + a + " 。"}
else if ( listBox1.SelectedIndex==1)
{ b = int.Parse(DataText.Text);listBox1.SelectedIndex = 1; listBox1.Items[1] = "b的值为" + b + " 。"}
else if ( listBox1.SelectedIndex==2)
{ c = int.Parse(DataText.Text);listBox1.SelectedIndex = 2; listBox1.Items[2] = "c的值为" +c+ " 。"}
...............
}
一共这里有100多个if-else

还有一个滚动条显示数据按钮 也是如此(这个有转换算法)
private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
if(richBox1.Text=="a的最大值为100,最小值为0")
{
int data1 = (int)hScrollBar1.Value;int data2 = data1 * 5;TextBox1.Text = data2.ToString();
}
else if(richBox1.Text=="b的最大值为100,最小值为0")
{
int data1 = (int)hScrollBar1.Value;int data2 = data1 /10;TextBox1.Text = data2.ToString();
}
......一共也是100多个

但这样写代码比较冗长。之前看过张子阳的委托,最后还是无法实现要求(看了改写后总是显示最后一个程序)。也用面向对象的建立接口多态写法也写过,但因为控件太多,导致new的对象太多,程序经常卡壳。求大神指点。。。或者给予一个正确的面向对象写法(在控制台里就写成功过,但是在winform里一次也没用面向对象法解决这个问题)。(づ。◕‿‿◕。)づ

  • 写回答

4条回答

  • 全栈极简 博客专家认证 2015-05-27 07:34
    关注

    找规律啊,if表达式跟里面要执行的代码有什么关系?或者从设计上面避免这种情况的发生。

    评论

报告相同问题?

悬赏问题

  • ¥15 用三极管设计—个共射极放大电路
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示