Member 12632487 Ответов: 1

Как передать значение в текстовое поле, когда itom выбран из comobox


Я хочу, чтобы при выборе пользователем элемента из comobox текстовое поле показывало значение: например: 4, 5
ПРИМЕР;
когда пользователь выбирает "A+ "из comobox, текстовое поле 1 автоматически показывает" 4".
И я хочу сделать это для многих comobox так что, пожалуйста, помогите мне :(

Что я уже пробовал:

я пробовал точно так же, как;
плавают = (поплавок)преобразования.ToDouble(textBox1. Text);
если (элемент combobox1.Текст == "А+")
{

textBox1. Text = " 4";
}
но не работает

Richard MacCutchan

Вам было бы лучше использовать предварительно настроенный список. Затем вы можете просто получить текущий выбранный элемент, когда пользователь делает выбор.

1 Ответов

Рейтинг:
5

Karthik_Mahalingam

попробуй вот так

private void Form3_Load(object sender, EventArgs e)
      {
          DataTable dt = new DataTable();
          dt.Columns.Add("Value");
          dt.Columns.Add("Text");
          dt.Rows.Add("", "");
          dt.Rows.Add("1", "A");
          dt.Rows.Add("2", "B");
          dt.Rows.Add("3", "C");
          dt.Rows.Add("4", "A+");

          comboBox1.DisplayMember = "Text";
          comboBox1.ValueMember = "Text";
          comboBox1.DataSource = dt;


      }

      private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
      {
          textBox1.Text = (comboBox1.SelectedItem as DataRowView)[0].ToString();
      }


Когда вы выберете+, 4 будет присвоено текстовому полю.


Member 12632487

Да, это лучший способ, но таким образом я могу передать значение типа float в текстовом поле .Этот код правильно работает,но не принимает значение float.
И еще одна важная вещь заключается в том, что я хочу сделать это для многих comobox, а затем в методе, как я могу написать код?
нужна помощь!

Karthik_Mahalingam

напишите функцию, передайте параметры и повторно используйте ее.

Member 12632487

Как можно передать этот параметр. вот такая путаница, что как можно передать параметр для comobox no?
другое дело, как можно передать значение float?
можете ли вы помочь мне, написав небольшой код?

Karthik_Mahalingam

значение float означает?
приведите несколько примеров того, как выглядят данные ur и как вы хотите отобразить их на экране

Member 12632487

то же самое, что я хочу, чтобы вы уже обсуждали . значит, когда пользователь выбирает оценку (например, A+) , то текстовое поле может показать (3.4)
как вы показываете, что когда пользователь выбирает класс " а+", текстовое поле автоматически показывает 4
теперь я хочу, чтобы он также мог показывать значение float, например 3.4,4.2 и т. д

Karthik_Mahalingam

просто преобразуйте значение float в string и сделайте то же самое.- это сработает..
опубликуйте свой код. я исправлю это.

Member 12632487

вот код
List< class1> grades = новый список & lt;class1>();
оценки.Add (new Class1 () { Grade = "", point = 0});
оценки.Add (new Class1 () { Grade = " A+", point = 4 });
оценки.Add (new Class1 () { Grade = "A", point = 3 });
оценки.Add (new Class1 () { Grade = " B+", point = 2 });
оценки.Add (new Class1 () { Grade = "B", point = 1 });
comboBox1. DataSource = оценки;
comboBox1. DisplayMember = " класс";

Я хочу, чтобы где находится значение point=2 или 3.... здесь я также могу ввести 2.3 или другое значение, например 3.2,4.2 и т. д
так помоги же мне!

Karthik_Mahalingam

класть
comboBox1. ValueMember = " точка";

Member 12632487

я думаю, вы не понимаете, о чем я.
я хочу, что comobox показать grede и TextBox показать точку(например, 3,3.4), код, который я послал вам покажет правильное значение для comobox и текстовое поле, но поле только покажет правильное значение, как 2,5,3 но когда я знамение значение (например, 3.4,2.3) ошибка визуальное шоу.....
код очень правильный, но нужно немного улучшить, этот код показывает ошибку, когда я ставлю значение (2.3, 4.5) В точку, так что помогите мне!

Karthik_Mahalingam

разместите код класса (class1)

Karthik_Mahalingam

публичный класс Class1
{
общественная строка класс {получить;набор;}
public string point {get;set;}
}

Список оценок = новый список();
оценки.Add (new Class1 () { Grade = "", point = " 0"});
оценки.Add (new Class1 () { Grade = " A+", point = " 4.1" });
оценки.Add (new Class1 () { Grade = "A", point = " 3.3" });
оценки.Add (new Class1 () { Grade = " B+", point = " 2.3" });
оценки.Add (new Class1 () { Grade = "B", point = 1 });
comboBox1. DataSource = оценки;
comboBox1. DisplayMember = " класс";
comboBox1. ValueMember = " точка";

Member 12632487

public string Grade { set; get; }
public string point { set; get; }
List< class1> grades = новый список & lt;class1>();
оценки.Add (new Class1 () { Grade = "", point = 0});
оценки.Add (new Class1 () { Grade = " A+", point = 4 });
оценки.Add (new Class1 () { Grade = "A", point = 3 });
оценки.Add (new Class1 () { Grade = " B+", point = 2 });
оценки.Add (new Class1 () { Grade = "B", point = 1 });
comboBox1. DataSource = оценки;
comboBox1. DisplayMember = " класс";

Karthik_Mahalingam

попробуйте приведенный выше код

Member 12632487

большое спасибо братан
моя программа теперь работает правильно ... так что спасибо
:)

Karthik_Mahalingam

:)

Member 12632487

когда я пишу 4.2 вместо 4 error show "не может неявно преобразовать double в string
так что попробуйте удалить эту ошибку , я так волнуюсь из-за этого :(

Karthik_Mahalingam

публичный класс Class1
{
общественная строка класс {получить;набор;}
public string point {get;set;}
}

Список оценок = новый список();
оценки.Add (new Class1 () { Grade = "", point = " 0"});
оценки.Add (new Class1 () { Grade = " A+", point = " 4.1" });
оценки.Add (new Class1 () { Grade = "A", point = " 3.3" });
оценки.Add (new Class1 () { Grade = " B+", point = " 2.3" });
оценки.Add (new Class1 () { Grade = "B", point = " 1" });
comboBox1. DataSource = оценки;
comboBox1. DisplayMember = " класс";
comboBox1. ValueMember = " точка";

Member 12632487

ошибка была в том, что я не написал "" для значения точки
так что спасибо

Karthik_Mahalingam

крутой

Member 12632487

и еще одно
но этот код в fundtion как можно написать ? я имею в виду, как можно передать параметр для разных comobox?
потому что мне нужен этот код много раз

Karthik_Mahalingam

все 3 combobox одинаковые данные?

Member 12632487

да
у меня есть 7 comobox и те же данные, которые я хочу передать

Karthik_Mahalingam

общественного недействительными BindDataToComboBox(комбобокс СВХ)
{
List< class1> grades = новый список & lt;class1>();
оценки.Add (new Class1 () { Grade = "", point = " 0" });
оценки.Add (new Class1 () { Grade = " A+", point = " 4.1" });
оценки.Add (new Class1 () { Grade = "A", point = " 3.3" });
оценки.Add (new Class1 () { Grade = " B+", point = " 2.3" });
оценки.Add (new Class1 () { Grade = "B", point = " 1" });
СВХ.Источник данных = ранги;
cbx. DisplayMember = " класс";
СВХ.ValueMember = "точка";
}

BindDataToComboBox(Элемент Combobox1);
BindDataToComboBox(ComboBox2);
BindDataToComboBox(ComboBox3);
BindDataToComboBox(ComboBox4);
BindDataToComboBox(ComboBox5);

Member 12632487

где этот код писать?
я имею в виду, где в коде приложения winform?

Karthik_Mahalingam

в форме 1. cs
внутри класса
позвоните в событии load формы
BindDataToComboBox(Элемент Combobox1);
BindDataToComboBox(ComboBox2);
BindDataToComboBox(ComboBox3);
BindDataToComboBox(ComboBox4);
BindDataToComboBox(ComboBox5);

Member 12632487

Таким образом, все comoboxs и textboxs имеют значение сохранения.
я имею в виду, что если comobbox1 имеет класс A+ и значение 4, то все comobox имеют одинаковое значение.
но я хочу, чтобы каждый comobox и textboxs имели значение в соответствии с оценками... так что вот ошибка

Karthik_Mahalingam

затем передайте данные аналогичным образом.

Member 12632487

большое спасибо.

Karthik_Mahalingam

добро пожаловать