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表达式跟里面要执行的代码有什么关系?或者从设计上面避免这种情况的发生。

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?