peri_jin 发表于 2009-4-10 23:08

请教会用C#界面编程的朋友一个问题!

我遇到了这样一个问题,
设置一个checkbox叫做automatisch rechnen,就是在选中它后,当给出数后,它就会自动进行运算。
可是这个自动运行,该怎么设置呢?
请高手指点!{:4_298:}

贪睡的猫咪 发表于 2009-4-10 23:26

在设计界面双击那个checkbox,C#会自动生成一个函数叫做 checkbox changed,当勾选该checkbox时,这个函数会相应checkbox changed这个event,被调用,把运算的逻辑放在这个函数里面就可以了。

贪睡的猫咪 发表于 2009-4-10 23:27

注意check 一下 checked值的真假就可以了

peri_jin 发表于 2009-4-10 23:50

3# 贪睡的猫咪

可是这样只能执行一次呀,我的意思是当我改动eingabe时,ausgabe也会自动从新计算。

贪睡的猫咪 发表于 2009-4-11 00:00

同理,textbox changed

peri_jin 发表于 2009-4-11 00:01

原题是这样的
Die Rechnung erfolgt nun bei Auswahl einer Checkbox „Sofort Rechnen“
Ist die Checkbox markiert, dann sollen sich Änderungen am Betrag oder am Mehrwertsteuersatz direkt in den anderen Feldern auswirken.

Netto
Skonto%
是有使用者任意给出值的
Skonto
abzgl.Skonto
MwSt16%
Brutto
是要在选定checkbox时自动求出的数字
------------------------------------------------------------------------------------------------------------
以下是我在给出的语句,怎样才能让它一直循环求值呢?
private void checkBox1_CheckedChanged(object sender, EventArgs e)
      {
            
                if (checkBox1.Checked == true)
                {

                  double sk, ask, nett;
                  sk = Convert.ToDouble(textBox2.Text);
                  nett = Convert.ToDouble(textBox1.Text);


                  textBox3.Text = Convert.ToString(nett * (sk / 100));
                  ask = 100 - sk;
                  textBox4.Text = Convert.ToString(ask);
                  if (radioButton1.Checked == true)
                  {
                        textBox5.Text = Convert.ToString(nett * (ask / 100) * 0.07);
                        textBox6.Text = Convert.ToString(nett * (ask / 100) * 1.07);
                  }
                  else if (radioButton2.Checked == true)
                  {
                        textBox5.Text = Convert.ToString(nett * (ask / 100) * 0.08);
                        textBox6.Text = Convert.ToString(nett * (ask / 100) * 1.08);
                  }
                  else if (radioButton3.Checked == true)
                  {
                        textBox5.Text = Convert.ToString(nett * (ask / 100) * 0.16);
                        textBox6.Text = Convert.ToString(nett * (ask / 100) * 1.16);
                  }
                  else if (radioButton4.Checked == true)
                  {
                        textBox5.Text = Convert.ToString(nett * (ask / 100) * 0.19);
                        textBox6.Text = Convert.ToString(nett * (ask / 100) * 1.19);
                  }

peri_jin 发表于 2009-4-11 00:05

同理,textbox changed
贪睡的猫咪 发表于 2009-4-11 00:00 http://www.dolc.de/forum/images/common/back.gif

我初接触C#
麻烦你帮我看看,我要怎样改才能实现题中的意思。

贪睡的猫咪 发表于 2009-4-11 00:08

那就不关checkbox_changed的事了,去textbox_changed呀
每当有人输入时,就判断一下那个checkbox.checked的value,true就运算,false就不算呀

贪睡的猫咪 发表于 2009-4-11 00:09

就是Netto和skonto这两个textbox

peri_jin 发表于 2009-4-11 00:18

就是Netto和skonto这两个textbox
贪睡的猫咪 发表于 2009-4-11 00:09 http://www.dolc.de/forum/images/common/back.gif
我蠢,刚才试了一下,没找着。
麻烦你告诉我一下语句。
双击textbox调出输入语句的地方后,输入什么语句呢?

ithillad 发表于 2009-4-11 10:55

MM到底什么专业的啊?上次是MFC,这次是C#

如果你上面那段代码的计算是正确的,就把那段写进去就行了呀

另外,.checked的返回值已经是boolean了,可以直接作为判断的条件语句,不需要写==true吧

peri_jin 发表于 2009-4-11 12:22

MM到底什么专业的啊?上次是MFC,这次是C#

如果你上面那段代码的计算是正确的,就把那段写进去就行了呀

另外,.checked的返回值已经是boolean了,可以直接作为判断的条件语句,不需要写==true吧
ithillad 发表于 2009-4-11 10:55 http://www.dolc.de/forum/images/common/back.gif

嘿嘿,我是info专业,所有的编程语言都要涉猎。
问题是我那段程序是正确的,可是只能运行一遍。题目是要求每次eingabe被改写时,ausgabe都要自动更新结果。可是我现在不知道该怎样实现。
mm有什么建议吗?帮我看看!

peri_jin 发表于 2009-4-11 12:55

MM先理好逻辑吧

1监视输入文本框内文字的改变。
2每当改变发生,执行:
    1.1判断是否自动计算
    1.2如果 是 , 则调用计算方法
─壶酒 发表于 2009-4-11 12:26 http://www.dolc.de/forum/images/common/back.gif
你说的这个是很有逻辑性可是该怎么把你说的这个逻辑性放到程序中去实现呢。
还请你明示,我知道我是菜鸟,算今天我学C#一个星期了,很多地方还不知道该怎么用。
比如说,你前面讲的1.监视输入文本框的文字改变, 应该在哪里实现呢?
1.1判断是非自动运算是否就是选定checkbox为true?
如果是的话,我前面就是这样做的呀,可是为什么只运算了一遍呢。
请你麻烦一点给我个类似的例子,再稍加解释一下可以吗?我在此跪谢了!

ithillad 发表于 2009-4-11 13:35

本帖最后由 ithillad 于 2009-4-11 13:41 编辑



嘿嘿,我是info专业,所有的编程语言都要涉猎。
问题是我那段程序是正确的,可是只能运行一遍。题目是要求每次eingabe被改写时,ausgabe都要自动更新结果。可是我现在不知道该怎样实现。
mm有什么建议吗?帮我 ...
peri_jin 发表于 2009-4-11 12:22 http://www.dolc.de/forum/images/common/back.gif

只要是textbox的值改变了,就会运行呀,不可能只运行一遍的呀。不能写在checkbox里面喔。checkbox的状态仅仅是textbox状态改变以后触发event的一个判断条件

我觉得你们学校学的东西很不系统呢。学校传授oo编程需要的是让学生把oo的思想学透,并且学透一种oo语言,会灵活的运用,就足够了,而不是学很多语言呀。只要通一门语言,其他的语言就都通了。一下子学太多,反而是欲速则不达呢

ithillad 发表于 2009-4-11 13:48


你说的这个是很有逻辑性可是该怎么把你说的这个逻辑性放到程序中去实现呢。
还请你明示,我知道我是菜鸟,算今天我学C#一个星期了,很多地方还不知道该怎么用。
比如说,你前面讲的1.监视输入文本框的文字改变, ...
peri_jin 发表于 2009-4-11 12:55 http://www.dolc.de/forum/images/common/back.gif

不知道你是用什么IDE,你右键点textbox,应该会有类似add event之类的东西(没有接触过C#,具体是什么样的不知道)。如果所有event都有解释就一条一条看,没有又不会看文档的话,最简单的办法就是google这些event,看它们倒底有什么作用,在什么情况下能触发。

符合条件的,应该就是前面 贪睡的猫咪 说的,textbox changed。
页: [1]
查看完整版本: 请教会用C#界面编程的朋友一个问题!