| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 836 人关注过本帖, 1 人收藏
标题:一个关于c#中变量在使用的问题,请各位大侠帮忙
只看楼主 加入收藏
dyc1229
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-11-30
收藏(1)
 问题点数:0 回复次数:7 
一个关于c#中变量在使用的问题,请各位大侠帮忙
我在编辑一个计算器的时候遇到一个问题。
比如说有三个变量,
a=1
b和c为要输入的变量
公式为
b=a*2
c=b*2
我现在可以计算出c来,可是算出来以后,b的结果就不能变了
我想改变b的时候把c的结果得出来,请问应该怎么实现呢?
问题可能比较菜,希望能得到前辈们的帮助。谢谢
还有一点,我使用的textbox作为输入输出的工具

[[italic] 本帖最后由 dyc1229 于 2007-11-30 11:34 编辑 [/italic]]
搜索更多相关主题的帖子: 变量 
2007-11-30 11:10
沉沦过迁
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:2297
专家分:10
注 册:2007-5-8
收藏
得分:0 
LZ你的b值是根据a而定的 a定了b就无所谓能改变了
你是不是想在一个textbox中输入b值 在输入b后另一个textbox就把c输出啊?
假如textBox1是输入的textBox2是输出的
int a;
 private void textBoxX1_TextChanged(object sender, EventArgs e)
        {
            b = Int32.Parse(textBoxX1.Text);
            textBoxX2.Text = (b * a).ToString();
        }

看看是不是你想要的

也许我没有明天,但是我拥有现在
2007-11-30 12:58
dyc1229
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-11-30
收藏
得分:0 
这是我写的公式:其中k得值计算出来的时候我想改变他,让他继续往下算,得到W
现在的情况是,我把x,z,a,m的值输进去,k就计算出来了,但是没法改变他了,我就是想问问,怎么在k计算出来的时候修改它,然后给他一个值在继续算出W来
private void button1_Click(object sender, EventArgs e)
        {
            double x, z, a, k, i, wkx, h, wx, W, invA, m;
            x = Convert.ToDouble(this.textBox1.Text.Trim());
            z = Convert.ToDouble(this.textBox2.Text.Trim());
            a = Convert.ToDouble(this.textBox3.Text.Trim());
            m = Convert.ToDouble(this.textBox5.Text.Trim());
            invA = Convert.ToDouble(this.textBox7.Text.Trim());
            


            i = (a / 180 * z) + (0.5) + (2 * x * (1 / Math.Tan(a))) / 3.14;
            k = Math.Round(i, 0, MidpointRounding.AwayFromZero);
            h = (Math.PI* (k - 0.5)) + z * invA;
            wkx = 1 / Math.Tan(a) * h;
            wx = 2 * x * Math.Sin(a);
            W = (wkx + wx) * m;
            this.textBox4.Text = Convert.ToString(k);
            this.textBox6.Text = Convert.ToString(W);
这是我写的公式
2007-11-30 15:50
ranshouxu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-9-15
收藏
得分:0 
你的程序是一直执行到完的啊
private void button1_Click(object sender, EventArgs e)
        {
            double x, z, a, k, i, wkx, h, wx, W, invA, m;
            x = Convert.ToDouble(this.textBox1.Text.Trim());
            z = Convert.ToDouble(this.textBox2.Text.Trim());
            a = Convert.ToDouble(this.textBox3.Text.Trim());
            m = Convert.ToDouble(this.textBox5.Text.Trim());
            invA = Convert.ToDouble(this.textBox7.Text.Trim());
            


            i = (a / 180 * z) + (0.5) + (2 * x * (1 / Math.Tan(a))) / 3.14;
            k = Math.Round(i, 0, MidpointRounding.AwayFromZero);
  MessageBox.Show("是否对结果进行更改","提示",MessageBoxButtons.YesNo);
                    if (MessageBox.Show("是否对结果进行更改", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
       {  //这里你可以添加一个Form 上面有个TextBox来输入你要对K的更改值
            h = (Math.PI* (k - 0.5)) + z * invA;
            wkx = 1 / Math.Tan(a) * h;
            wx = 2 * x * Math.Sin(a);
            W = (wkx + wx) * m;
            this.textBox4.Text = Convert.ToString(k);
            this.textBox6.Text = Convert.ToString(W);
}
      else
        {  h = (Math.PI* (k - 0.5)) + z * invA;
            wkx = 1 / Math.Tan(a) * h;
            wx = 2 * x * Math.Sin(a);
            W = (wkx + wx) * m;
            this.textBox4.Text = Convert.ToString(k);
            this.textBox6.Text = Convert.ToString(W);
         }
         不知道我的理解对吗?
2007-11-30 17:30
dyc1229
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-11-30
收藏
得分:0 
我觉得这样比较麻烦,可不可以直接刷新k,在k改变的时候,直接将后面的W算出来呢?
主要是k算出来以后可能和我的要求不很一样,我想通过修改k 来得到我想要的W来。
麻烦各位再帮我想想啊,求求你们了。5555555555
2007-11-30 19:06
dyc1229
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-11-30
收藏
得分:0 
我现在想了一个笨办法方法如下:
 private void textBox7_TextChanged(object sender, EventArgs e)
        {
            double x, z, a, k, i, wkx, h, wx, W, invA, m;
            x = Convert.ToDouble(this.textBox1.Text.Trim());
            z = Convert.ToDouble(this.textBox2.Text.Trim());
            a = Convert.ToDouble(this.textBox3.Text.Trim());
            m = Convert.ToDouble(this.textBox4.Text.Trim());
            invA = Convert.ToDouble(textBox7.Text);
            i = (a / 180 * z) + (0.5) + (2 * x * (1 / Math.Tan(a))) / 3.14;
            k = Math.Round(i, 0, MidpointRounding.AwayFromZero);



            h = (Math.PI * (k - 0.5)) + z * invA;
            wkx = 1 / Math.Tan(a) * h;
            wx = 2 * x * Math.Sin(a);
            W = (wkx + wx) * m;
            this.textBox5.Text = Convert.ToString(k);
            this.textBox6.Text = Convert.ToString(W);

        }
private void button1_Click(object sender, EventArgs e)
        {
            double x, z, a, k, i, wkx, h, wx, W, invA, m;

            x = Convert.ToDouble(this.textBox1.Text.Trim());
            z = Convert.ToDouble(this.textBox2.Text.Trim());
            a = Convert.ToDouble(this.textBox3.Text.Trim());
            m = Convert.ToDouble(this.textBox4.Text.Trim());
            k = Convert.ToDouble(textBox5.Text);
            invA = Convert.ToDouble(textBox7.Text);
            i = (a / 180 * z) + (0.5) + (2 * x * (1 / Math.Tan(a))) / 3.14;
            h = (Math.PI * (k - 0.5)) + z * invA;
            wkx = 1 / Math.Tan(a) * h;
            wx = 2 * x * Math.Sin(a);
            W = (wkx + wx) * m;
            this.textBox5.Text = Convert.ToString(k);
            this.textBox6.Text = Convert.ToString(W);
         
            
        }
意思就是再往输入框里输入数字的时候把k先算出来,当我改了k以后再按butteon让他计算,不过有个缺点,必须是把四个框里的数字按顺序输入,否则出错,而且不方便,各位有没有更好的办法,谢谢了
2007-11-30 19:40
TIANCAILVV
Rank: 1
来 自:大连
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-11-30
收藏
得分:0 
恩 我 发给你我做的 我运用的是视图状态
给你看看?? 你的那个第一个问题
---------------------------------------------------------
public partial class _Default : System.Web.UI.Page?
{
?  ? ?? System.Collections.Specialized.StringCollection list = new System.Collections.Specialized.StringCollection();

?  ? ?? public System.Collections.Specialized.StringCollection List
? ? ??   {
?      ? ? ? ? ?? get { this.list = this.ViewState["Meth"] as System.Collections.Specialized.StringCollection;
? ? ? ? ? ? ? ? ? ? ? ?       if (this.list == null)
?      ? ? ? ? ? ? ? ? ? ? ? ? {
?          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? this.list = new System.Collections.Specialized.StringCollection();
?          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? this.ViewState["Meth"] = this.list;
?      ? ? ? ? ? ? ? ? ? ? ? ? ?? }
?      ? ? ? ? ? ? ? ? ? ? ? ?? return this.list;
?      ? ? ? ? ? ? ? ? ?? }
?  ? ? ? ? }



?   protected void Page_Load(object sender, EventArgs e)
?   {
?       this.List.Clear();

?       CreateBoxAndButton();
?   }




?   private void CreateBoxAndButton()
?   {
?       TextBox tbxA = new TextBox();
?       TextBox tbxB = new TextBox();
?       TextBox tbxC = new TextBox();
?       LinkButton lbnOk = new LinkButton();
?       lbnOk.Text = "O K";
?       lbnOk.Click += new EventHandler(lbnOk_Click);
?       tbxA.Text = "1";
?       this.List.Add("1");
?       this.List.Add("2");
?       //用PlaceHoder添加控件
?       this.PlaceHoder1.Controls.Add(tbxA);
?       this.PlaceHoder1.Controls.Add(tbxB);
?       this.PlaceHoder1.Controls.Add(tbxC);
?       this.PlaceHoder1.Controls.Add(lbnOk);
?   }

?   void lbnOk_Click(object sender, EventArgs e)
?   {
?       //找出PlaceHoder1上的控件?
?       TextBox tbxA = this.PlaceHoder1.Controls[0] as TextBox;
?       TextBox tbxB = this.PlaceHoder1.Controls[1] as TextBox;
?       TextBox tbxC = this.PlaceHoder1.Controls[2] as TextBox;
?     ??
?       int a = Convert.ToInt32( this.List[0]);
?       int b = Convert.ToInt32(this.List[1]);
?       string text = tbxB.Text;
?       if (text !="")
?       {
?           int temp = Convert.ToInt32(tbxB.Text);
?           if (b != temp)
?           {

?               this.List.Clear();
?               int b2 = Convert.ToInt32(tbxB.Text);
?               int c2 = b2 * 2;
?               int a2 = b2 / 2;
?               tbxA.Text = a2.ToString();
?               this.List.Add(string.Format("{0}", a2));
?               this.List.Add(string.Format("{0}", b2));
?               tbxC.Text = string.Format("{0}", c2);
?           }
?       }
?       else
?       {
?           tbxA.Text = string.Format("{0}", a);
?           tbxB.Text = string.Format("{0}", b);
?           tbxC.Text = string.Format("{0}",(b*2));
?       }
?   }

}
2007-12-01 01:50
dyc1229
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-11-30
收藏
得分:0 
非常感谢,大侠的帮忙,谢谢你的热心帮助,太感动了
2007-12-01 09:45
快速回复:一个关于c#中变量在使用的问题,请各位大侠帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013270 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved