#c# #combobox
#c# #поле со списком
Вопрос:
Я новичок в C #, я пытаюсь запросить у пользователя сообщение после изменения combobox
элемента, но приведенный ниже код не работает, даже если combobox
элемент изменен.
namespace NormingPointTagProgrammer
{
public partial class normingPointTagProgrammer : Form
{
public normingPointTagProgrammer()
{
InitializeComponent();
// User Message to start the tag programming
MessageBox.Show("To Read the data programmed in a Tag, Click on READ Buttonn"
"To Write data into the tag, n"
"Please select the Data Format, under DATA TO PROGRAMMER frame.");
}
private void dataFormatComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
// When the user has decided to program the tag. Check the Data format selected by the user, and ask the user to
// enter required fields based on the format selected.
if (datFormatcomboBox.Text == "RSO")
{
MessageBox.Show("Within DATA TO PROGRAMMER frame, under RSO DATA from DataBase Enter the following fields: n"
"Region (1-254),n"
"Segment (1-255),n"
"Offset (0 to 6553.5) and n"
"select Type dropdown Field, Under");
}
else if (datFormatcomboBox.Text == "INDEX")
{
MessageBox.Show("Within DATA TO PROGRAMMER frame, under INDEX DATA from DataBase Enter the following fields: n"
"Region (255) and n"
"Index (1-65535) ");
}
else if (string.IsNullOrWhiteSpace(datFormatcomboBox.Text))
{
MessageBox.Show("Please select the Data Format, under DATA TO PROGRAMMER frame.");
}
else
{
MessageBox.Show("Required fields not entered by the user.n"
"Please enter the data to be programmed based on the Data Format selected");
}
}
}
}
Комментарии:
1. в методе достигнута точка останова?
2. Вы пытались добавить обработчик событий? Пример.
dataFormatComboBox.SelectedIndexChanged = dataFormatComboBox_SelectedIndexChanged;
3. Нет, точка останова не попадает
4. Тогда вы
ComboBox
, вероятно, не подписаны на событие. Делайте то, что @vbnet3d упоминает в своем комментарии. Если вы используете VS, в следующий раз просто дважды щелкните соответствующее событие в окне свойств, и оно будет сгенерировано и подписано для вас.
Ответ №1:
Убедитесь, что на ваше событие подписано, для сокращения будет использоваться, например, приведенное ниже,
ComboBoxChanged = dataFormatComboBox_SelectedIndexChanged();
Или,
ComboBoxChanged = new EventHandler(dataFormatComboBox_SelectedIndexChanged);
// This will be called whenever the ComboBox changes:
private void dataFormatComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
//Your datFormatcomboBox.Text logic here.
}
По сути, все, что передается в ComboBoxChanged, используется e
для получения ввода текста со списком.
Дополнительная информация здесь: https://msdn.microsoft.com/en-us/library/aa645739 (v= против 71).aspx
Надеюсь, это поможет!