第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將整數(shù)值從 5 個(gè)不同的文本框傳遞到 2 個(gè)不同的文本框

如何將整數(shù)值從 5 個(gè)不同的文本框傳遞到 2 個(gè)不同的文本框

C#
飲歌長(zhǎng)嘯 2023-12-17 16:54:36
我有一個(gè)帶有多個(gè)按鈕的 Winforms 應(yīng)用程序。它要求用戶單擊按鈕,無論需要多少次,該按鈕 1 單擊事件都會(huì)在文本框 1 內(nèi)添加一個(gè)整數(shù)值,該整數(shù)值隨著每次單擊按鈕 1 而遞增。然后我有button2,當(dāng)單擊它時(shí),它會(huì)從textbox1 內(nèi)的整數(shù)值中減去?,F(xiàn)在我也有 textbox2、textbox3、textbox4、textbox5 和 textbox6 做同樣的事情,每個(gè)都有自己的一對(duì)按鈕來加和減。它們都彼此獨(dú)立工作。 Txtbox1,2,3,4,5,6 是發(fā)送者。當(dāng)嘗試將 txtbox1、txtbox2、txtbox3、txtbox4、txtbox5 和 txtbox6 中的整數(shù)值傳遞到 txtbox7 和 txtbox8(接收 txtbox)時(shí),我的問題出現(xiàn)了。每個(gè)文本框還有兩個(gè)用于添加值和減去值的按鈕。我能夠?qū)?txtbox1 的值傳遞到 txtbox7 & txtbox8 沒有問題。當(dāng)我使用相同的代碼讓所有其他 txtboxes 將 int 值傳遞給 txtbox7 & 時(shí),問題就開始了。 txtbox8,6 個(gè) txtbox 之一的輸入將相互覆蓋。例如如果我在 txtbox1 上點(diǎn)擊 5 次,它會(huì)將 int 5 傳遞給 txtbox1、txtbox7 和 txtbox1。 txtbox8,但如果我去點(diǎn)擊 txtbox2 兩次,然后點(diǎn)擊 txtbox7 & 8 值 5 并未消失,而是顯示新值 2。我想要發(fā)生的是,當(dāng)單擊任何一個(gè)按鈕時(shí),傳遞到 2 個(gè)接收文本框的值需要添加到已經(jīng)存在的 int 值中。我不知道這是否足夠解釋。這是我的代碼。private void button1Add_Click(object sender, EventArgs e){  AddToTexBox1(1);}private void AddToTextBox1(int changeBy){  if (int.TryParse(txtBox1.Text, out int value))  {     value += changeBy;     txtBox1.Text = value.ToString();     txtBox7.Text = value.ToString();     txtBox8.Text = value.ToString();  }  else  {     MessageBox.Show("Invalid Integer in TextBox!");  }}private void Btn2Subtract_Click(object sender, EventArgs e){     AddToTextBox1(-1);}該代碼對(duì)于 txtBox 1 和 txtBox7 & 運(yùn)行良好。 txtBox8 但當(dāng)我嘗試對(duì)其他 txtBox 使用相同的內(nèi)容時(shí),它無法按預(yù)期工作。任何幫助將不勝感激。
查看完整描述

3 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

您當(dāng)前的問題是直接對(duì)文本框中存儲(chǔ)的值進(jìn)行操作。所以當(dāng)你這樣做時(shí):

txtBox7.Text = value.ToString();

您不檢查當(dāng)前存儲(chǔ)在 txtBox7 中的值。

所以你可以按照2條路徑來解決它:

  1. 使用與 int 相同的解析從 txtBox7 中獲取值并將其放入變量中,然后向該變量添加值并然后將其保存回目標(biāo)文本框。

  2. 您可以在邏輯背后有一些模型(如果這些數(shù)字代表某些東西)并更新模型(通過根據(jù)您的“業(yè)務(wù)”規(guī)則將數(shù)字放入模型的屬性中)。之后,通過將模型中的值放入文本框,將 UI(文本框)與模型同步。理想情況下,您希望為其使用數(shù)據(jù)綁定(以便在模型更改后自動(dòng)刷新您的 UI)。

以下是 1 的代碼示例:

if (int.TryParse(txtBox1.Text, out int value) &&

    int.TryParse(txtBox7.Text, out int oldValue7) &&

    int.TryParse(txtBox7.Text, out int oldValue8)

    )

{

    value += changeBy;

    oldValue7 += value;

    oldValue8 += value;

    txtBox1.Text = value.ToString();

    txtBox7.Text = oldValue7.ToString();

    txtBox8.Text = oldValue8.ToString();

}

如果您需要有關(guān)數(shù)據(jù)綁定的更多信息,請(qǐng)參閱文檔。您必須花時(shí)間學(xué)習(xí)和習(xí)慣這種方法,但它可以讓您將模型邏輯與 UI 解耦,這對(duì)于復(fù)雜的模型和 UI 是有益的。


以下是我為業(yè)務(wù)規(guī)則引入單獨(dú)的類的含義的示例:


class MyModel

{

  public int MyFirstInputValue {get; set;}

  public int MySecondInputValue {get; set;}


  public int MyFirstResultValue {get; private set;}

  public int MySecondResultValue {get; private set;}


  public void RunMyCalculationLogic()

  {

    // your calculations go here...

    MyFirstResultValue = MyFirstInputValue + MySecondInputValue;

    MySecondResultValue = MyFirstInputValue - MySecondInputValue;

  }

}

然后你或多或少像這樣使用這個(gè)模型:


var myModel = new MyModel();

myModel.MyFirstInputValue = 1; // parse value from input textBox1

myModel.MySecondInputValue = 2; // parse value from input textBox2

myModel.RunMyCalculationLogic();

// TODO: use results from MyFirstResultValue and MySecondResultValue to populate textBoxes you need

我希望這足以讓您開始。


查看完整回答
反對(duì) 回復(fù) 2023-12-17
?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您使用 NumericUpDown 控件而不是文本框,您的生活會(huì)輕松得多。您可以將所有 NUD 設(shè)置為默認(rèn)值 0,為它們編寫一個(gè)值更改事件處理程序(將所有 NUD 值更改事件鏈接到同一個(gè)處理程序),該處理程序具有一行代碼:

nud7.Value = nud1.Value + nud2.Value + nud3.Value ...

如果您要將 nud1 到 nud6 放入構(gòu)造函數(shù)中的類范圍數(shù)組中,那么您甚至可以使用 LINQ 將其簡(jiǎn)化為:

nud7.Value = myNuds.Sum(n => n.Value);

這是一步一步 - 在新項(xiàng)目中執(zhí)行此操作。大約需要 10 分鐘:

  • 制作一個(gè)新的 Windows 窗體應(yīng)用程序

  • 在表格上輸入 8 個(gè)數(shù)字

  • 選擇全部,將它們的最小值和值設(shè)置為 0,將最大值設(shè)置為相關(guān)的值

  • 僅選擇前 6 個(gè)

  • 轉(zhuǎn)到屬性網(wǎng)格,單擊閃電,找到與值更改相關(guān)的事件(可能稱為 ValueChanged,我現(xiàn)在不在電腦上進(jìn)行測(cè)試)并寫入“AllChanged”在旁邊的框中按回車鍵

  • 出現(xiàn)代碼視圖。將我發(fā)布的第一個(gè)代碼(添加所有值并將結(jié)果存儲(chǔ)在數(shù)字 updown 7 的值中的代碼)放在事件處理程序中

  • 運(yùn)行項(xiàng)目

我不確定為什么你有兩個(gè)總計(jì)框..但我相信你可以解決這個(gè)問題

注意不要將相同的事件處理程序添加到框 7;你會(huì)導(dǎo)致無限循環(huán),導(dǎo)致堆棧溢出


查看完整回答
反對(duì) 回復(fù) 2023-12-17
?
揚(yáng)帆大魚

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

在嘗試了我在另一個(gè) Winforms 項(xiàng)目中使用的一些代碼之后。我找到了解決問題的方法。這就是我所做的。



       TextBox[] txtbox;



        public FormOne()

        {

            InitializeComponent();




            Sqlconn con = new Sqlconn();


            txtbox = new TextBox[] { txtBox1, txtBox2, txtBox3, txtBox4, txtBox5, txtBox6, txtBox7};


            foreach (TextBox text in txtbox)

                text.TextChanged += new EventHandler(txtbox_TextChanged);


           }


           private void txtbox_TextChanged(object sender, EventArgs e)

        {

            int value = 0;

            int total = 0;

            foreach (TextBox text in txtbox)

            {

                if (int.TryParse(text.Text, out value))

                    total += value;

            }

            txtBox7.Text = total.ToString();

            txtBox8.Text = total.ToString();


            private void FormOne_Load(object sender, EventArgs e)

            {


            }


感謝大家的支持。


查看完整回答
反對(duì) 回復(fù) 2023-12-17
  • 3 回答
  • 0 關(guān)注
  • 269 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)