c#winform 设计一个窗体,计算数量,单价,金额,

1、只能输入正确的数字,即只能输入正的小数,要求输入后离开该字段时均保留2位小数
2、输入数量时,离开数量字段时检查单价是否存在,如果单价存在,计算金额
3、输入单价时,离开单价字段时检查数量是否存在,如果数量存在,计算金额
4、输入金额时,离开金额字段时检查数量是否存在,如果数量存在,计算单价
5、不论光标在哪个字段,如果在该字段时未作任何改动,数量、单价、金额也不作改动

本人已经测试

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Count
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void txtnumber_TextChanged(object sender, EventArgs e)
{
if ( txtnumber.Text != ""&&txtprice.Text!="")
{
txtmoney.Text = Convert.ToDecimal(Convert.ToDecimal(txtnumber.Text.Trim()) * Convert.ToDecimal(txtprice.Text.Trim())).ToString("0.00").Trim();
}
if (txtnumber.Text == "")
{
MessageBox.Show("请输入数量");
}
if (txtprice.Text == "")
{
MessageBox.Show("请输入单价");
}
}
private void txtprice_TextChanged(object sender, EventArgs e)
{
if ( txtnumber.Text != "" && txtprice.Text != "")
{
txtmoney.Text = Convert.ToDecimal(Convert.ToDecimal(txtnumber.Text.Trim()) * Convert.ToDecimal(txtprice.Text.Trim())).ToString("0.00").Trim();
}
if (txtnumber.Text == "")
{
MessageBox.Show("请输入数量");
}
if (txtprice.Text == "")
{
MessageBox.Show("请输入单价");
}
}
private void txtmoney_TextChanged(object sender, EventArgs e)
{
if (txtnumber.Text != "" && txtprice.Text != ""&&txtmoney.Text!="")
{
txtprice.Text = Convert.ToDecimal(Convert.ToDecimal(txtmoney.Text.Trim()) / Convert.ToDecimal(txtnumber.Text.Trim())).ToString("0.00").Trim();
}
if (txtnumber.Text == "")
{
MessageBox.Show("请输入数量");
}
if (txtprice.Text == "")
{
MessageBox.Show("请输入单价");
}
if (txtmoney.Text == "")
{
MessageBox.Show("请输入金额");
}
}
private void txtnumber_KeyUp(object sender, KeyEventArgs e)
{
System.Globalization.NumberFormatInfo provider = new System.Globalization.NumberFormatInfo();
provider.NumberDecimalDigits = 2;
double strCashAmt = Convert.ToDouble(this.txtnumber.Text);
txtnumber.Text = strCashAmt.ToString("N", provider);
}
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-07
你这个应该发到找人花钱做滴威客上..我可以帮你做不过要点米..
第2个回答  2013-05-07
给100分我给你做追问

。。。哪里来的那么多分数唉。。。

追答

这么和么你说吧!看别人代码很费脑子的,我给你说思路,你的需求就是文本框失去焦点的时候去执行相关的判断,文本框控件的事件里有失去焦点的事件,以上你的三个需求都可以在对应的文本框事件里去写,不会很难,你可以先做简单的试验,比如数量文本框失去焦点的时候弹出个提示框!慢慢摸索,直接给你代码对你没什么好处!真心的

第3个回答  2013-05-07
简单是简单,但似乎需要点时间。。。。。追问

我想问下,输入数量时,离开数量字段时检查单价是否存在,如果单价存在,计算金额
这个怎么做求一段代码
private void textBox1_Leave(object sender, EventArgs e){}感觉这个无法实现

追答

用textChange时间吧

c#winform 设计一个窗体,计算数量,单价,金额,
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Count{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void txtnumber_TextC...

C# winform 怎么创建子窗口?我小白一个
新建一个窗体Form1,在设置Form1的属性IsMdiContainer 的属性为true,在Form1上面放置一个button按钮,然后在新建一个Form2,在Button单击事件里面写上代码:private void button1_Click_1(object sender, EventArgs e){ Form2 f2 = new Form2();f2.MdiParent = this;f2.Show();} 你看你要的是...

C# WinForm窗体界面设置问题
ControlBox:窗体左上角或右上角的最大最小关闭按钮 MaximizeBox:控制最大化按钮是否可用 MinimizeBox:控制最小化按钮是否可用 Opacity:透明度 Icon:设置窗体左上角的图标,只能是ico文件 ShowIcon:是否显示左上角图标 ShowInTaskbar:是否在windows任务栏里显示窗体 TopMost:最顶层窗口,始终在最上面 Tran...

c#winform“在窗体上随机显示两个100以内的整数”这个代码怎么写_百 ...
namespace 加法游戏{ public partial class Form1 : Form { private int a; private int b; Random ra; public Form1() { InitializeComponent(); calc(); } private void button1_Click(object sender, EventArgs e) { int c = int.Parse(textBox1....

c# winform .net 我想做一个窗体 然后在窗体上显示某个文件夹中的所有...
你是整个窗体都显示图片 还是指定范围显示图片 可以用N个图片控件 是固定图片 还是经常变动图片 如果是固定的 可以通过文件夹 裁图 这里放一张图 显示的方式一样 还不同 1. 一个控件显示一个文件家里面所以图片的缩图 从来没遇到过

C#知识|上位机项目主窗体设计思路及流程(实例)
步骤二:控件布局通过添加三个Panel控件, Panel1设为Dock Top,高度66像素,用来承载窗体顶部元素。其余两个Panel根据UI设计图调整位置和大小,可以添加背景图。其他控件其他控件的属性设置如前文所述,具体细节不再赘述,可参考相关笔记。按钮重复属性略过。窗体交互窗体关闭按钮的实现与登录窗体类似,参考...

C# winform 中 有一窗体 A ,A中有一个按钮Btn, 单击 Btn 调用窗体B...
关闭子窗体B的时候返回一个值给父窗体A,A接受到这个值就close,参考代码如下:A窗体btn的单击事件:private void Btn_Click(object sender, EventArgs e){ Form1 formB = new Form1();formB.ShowDialog();if (formB.DialogResult == DialogResult.Cancel){ this.Close();} } ...

C# winform界面设计问题……
一、代码中可以看到一段灰色的字(如果没有这一步省略,字的内容大体是“Windows 窗体设计器生成的代码”),点左边的加号展开。二、查找你前面添加的TabPage的名称(找到的内容会是:this.xxx = new System.Windows.Forms.TabPage()),把System.Windows.Forms.TabPage改成你的类的名称 三、接下来...

C# winform 在一个窗体中如何设置另一个窗体的TextBox的值
frm.Show();方法2是通过构造函数\/指定公开方法传入,然后为对应控件赋值。public Form2(string text){ InitializeComponent();this.textBox1.Text = text;} 调用时 Form2 frm = new Form2("方法2");frm.Show();方法3是通过公开属性来设置,此法甚好。public string Text3 { get { return this...

用c# winform 进行窗体编程的时候,多个form 窗体页面 在创建的时候 该...
不是排列,一般软件也不会去排列,窗体之间的次序叫置顶,每次鼠标焦点只能激活一个窗体。实际编程中winform我们很少用到多窗体操作,最多两个,一个做菜单一个做主窗体。切换子窗体直接用容器加载自定义控件就可以。

相似回答