Приращение значения текстового поля в C # .net - PullRequest
0 голосов
/ 27 ноября 2010

У меня есть 2 текстовое поле и 1 кнопка текстовое поле 1, текстовое поле 2 и 1 кнопка приращения. И текстовое поле инициализируется как 1. Если я нажму на текстовое поле 1, а затем на кнопку incr, значение, принадлежащее textbox1, будет только увеличиваться. нажмите на textbox2 и снова я нажму на кнопку incr, только значение textbox2 будет увеличиваться. Как я это сделаю?

Ответы [ 5 ]

1 голос
/ 17 мая 2011

Это можно сделать на стороне клиента с помощью JavaScript.В фокусе textbox1 обновите значение скрытого поля.аналогично для textbox2.затем по нажатию кнопки, на основе скрытого f

1 голос
/ 27 ноября 2010

Вы не сказали, были ли вы в WinForms или в WPF, поэтому я не буду показывать код.

В вашем классе есть поле TextBox activeTextBox. В событиях GotFocus каждого текстового поля установите activeTextBox = это текстовое поле. В щелчке по кнопке преобразуйте текст activeTextBox в целое число, добавьте его, верните обратно в строку и установите текст обратно.

Редактировать

activeTextBox - это поле, которое вам нужно настроить, дизайнер не сделает это за вас. Если вы установите GotFocus событие textBox1, установите activeTextBox = textBox1 и аналогично для textBox2, тогда activeTextBox всегда будет иметь текстовое поле 'current' Затем в событии нажатия кнопки вы можете сделать все, что вам нужно сделать на activeTextBox. Вам вообще не нужно обращаться к textBox1 или textBox2 из обработчика нажатия кнопки.

0 голосов
/ 27 ноября 2010

if (textBox1.Focused) {textBox1.Text = (Convert.ToInt32 (textBox1.Text) + 1) + "";

        }
        else if (textBox2.Focused)
        {
            textBox2.Text = (Convert.ToInt32(textBox2.Text) + 1) + "";

        }

        else if (textBox3.Focused)
        {
            textBox3.Text = (Convert.ToInt32(textBox3.Text) + 1) + "";

        }

Но ".Focused" всегда возвращает False.Почему?

0 голосов
/ 27 ноября 2010

Создайте приложение Windows Form и вставьте этот код в form1.cs

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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        TextBox textbox1 = new TextBox(), textbox2 = new TextBox();
        Button button1 = new Button();
        int FocusedTextBox = 0;

        public Form1()
        {
            InitializeComponent();
            this.Load += new System.EventHandler(this.Form1_Load);
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            button1.Click += new EventHandler(button1_Click);

            textbox1.Text = textbox2.Text = "1";
            textbox1.Location = new Point(100, 100);
            textbox2.Location = new Point(100, 140);
            button1.Location = new Point(100, 180);

            textbox1.Click += new EventHandler(textbox1_Click);
            textbox2.Click += new EventHandler(textbox2_Click);
            textbox1.ReadOnly = true;
            textbox2.ReadOnly = true;

            this.Controls.Add(textbox1);
            this.Controls.Add(textbox2);
            this.Controls.Add(button1);
        }

        void textbox2_Click(object sender, EventArgs e)
        {
            FocusedTextBox = 2;
        }

        void textbox1_Click(object sender, EventArgs e)
        {
            FocusedTextBox = 1;
        }

        void button1_Click(object sender, EventArgs e)
        {
            if (FocusedTextBox ==1)
                textbox1.Text = (int.Parse(textbox1.Text) + 1).ToString();
            else if (FocusedTextBox == 2)
                textbox2.Text = (int.Parse(textbox2.Text) + 1).ToString();
        }
    }
}
0 голосов
/ 27 ноября 2010
private int pickedbox = 0

[...]

private void textBox1_Enter(...)
{
    pickedbox = 0;
}

private void textBox2_Enter(...)
{
    pickedbox = 1;
}

private void button1_Click(...)
{
    switch(pickedbox)
    {
        case 0:
            textBox1.Text = int.Parse(textBox1.Text)++;
            break;
        case 1:
            textBox2.Text = int.Parse(textBox2.Text)++;
            break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...