Я создал приложение Telerik Test с 4 элементами управления (кнопка, 2 раскрывающихся списка и текстовое поле).
Я пытаюсь нажать кнопку «Добавить проект».отображается первый раскрывающийся список (список проектов из метода PopulateProjects ()).При выборе проекта из этого списка отображается следующий выпадающий список с «задачами проекта из метода PopulateTasks ()».При выборе задачи элемент управления текстового поля отображает текстовое содержимое как проекта, так и выбранной задачи (метод TextDisplay ()).
Проблема, с которой я сталкиваюсь, заключается в том, что выпадающие элементы управления не ждут, пока я выберу элемент, вместо этого он просто автоматически выбирает первый элемент в списке по умолчанию.Таким образом, в текстовом поле отображается первый элемент в списке проектов и задач проекта, т. Е. Отображается «PROJECT abc TASK task one».Я не могу даже просмотреть элементы в раскрывающемся списке, но вижу, что элементы существуют при отладке.Поток идет от radProjList.EndUpdate непосредственно к selectedIndexChanged.Событие получает инициированное событие, хотя в индексе не было никаких изменений.Выпадающий список даже не отображается.
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnAddProject_Click(object sender, EventArgs e)
{
radProjList.Visible = true;
radTaskList.Visible = false;
PopulateProjects();
radTaskList.Visible = false;
radProjList.Visible = false;
}
public string NoteText
{
get
{
//return txtNote.Text;
return radTextBox.Text;
}
set
{
//txtNote.Text = value;
radTextBox.Text = value;
}
}
void TextDisplay()
{
string projname = radProjList.SelectedText;
string projtask = radTaskList.SelectedText;
this.radTextBox.Text = "PROJECT "+projname + " TASK " + projtask;
radTaskList.Visible = false;
radProjList.Visible = false;
}
void PopulateProjects()
{
radProjList.Visible = true;
radTaskList.Visible = false;
radProjList.Items.Clear();
radProjList.Text = "Select Project";
List<string> ProjectName = new List<string>();
ProjectName.Add("abc");
ProjectName.Add("def");
ProjectName.Add("ghi");
ProjectName.Add("jkl");
ProjectName.Add("mno");
ProjectName.Add("pqr");
radProjList.BeginUpdate();
radProjList.DataSource = ProjectName;
radProjList.DisplayMember = "ProjectName";
radProjList.ValueMember = "ProjectName";
radProjList.AutoCompleteDataSource = ProjectName;
radProjList.DropDownListElement.AutoCompleteSuggest.SuggestMode = Telerik.WinControls.UI.SuggestMode.Contains;
Size popupSize = new Size(400, 300);
radProjList.DropDownListElement.AutoCompleteSuggest.DropDownList.DropDownMinSize = popupSize;
radProjList.DropDownListElement.DropDownMinSize = popupSize;
radProjList.ListElement.Font = new Font("Microsoft Sans Serif", 16);
radProjList.DropDownListElement.AutoCompleteSuggest.DropDownList.Popup.Font = new System.Drawing.Font("Microsoft Sans Serif", 16);
radProjList.EndUpdate();
radProjList.SelectedIndex = -1;
radProjList.Text = "Select Project";
}
void PopulateTasks()
{
List<string> populateTaskList = new List<string>();
radTaskList.Visible = true;
radTaskList.Items.Clear();
populateTaskList.Add("task one");
populateTaskList.Add("task two");
populateTaskList.Add("task three");
populateTaskList.Add("task four");
populateTaskList.Add("task five");
populateTaskList.Add("task six");
radTaskList.Items.Clear();
radTaskList.Text = "Select Tasks";
radTaskList.BeginUpdate();
radTaskList.DataSource = populateTaskList;
radTaskList.DisplayMember = "projectTask";
radTaskList.ValueMember = "projectTask";
radTaskList.AutoCompleteDataSource = populateTaskList;
radTaskList.AutoCompleteMode = AutoCompleteMode.Suggest;
Size popupSize = new Size(400, 300);
radTaskList.DropDownListElement.AutoCompleteSuggest.DropDownList.DropDownMinSize = popupSize;
radTaskList.DropDownListElement.DropDownMinSize = popupSize;
radTaskList.DropDownListElement.AutoCompleteSuggest.DropDownList.ListElement.VisualItemFormatting += new Telerik.WinControls.UI.VisualListItemFormattingEventHandler(ListElement_VisualItemFormatting);
radTaskList.ListElement.Font = new Font("Microsoft Sans Serif", 16);
radProjList.DropDownListElement.AutoCompleteSuggest.DropDownList.Popup.Font = new System.Drawing.Font("Microsoft Sans Serif", 26);
radTaskList.EndUpdate();
radTaskList.SelectedIndex = -1;
radTaskList.Text = "Select Project Type";
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void radProjList_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
{
if (radProjList.SelectedIndex >= 0)
{
radTaskList.Select();
PopulateTasks();
}
}
private void radTaskList_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
{
if (radTaskList.SelectedIndex >= 0)
{
radTaskList.CloseDropDown();
TextDisplay();
}
}
Font myFont = new Font("Microsoft Sans Serif", 16);
private void ListElement_VisualItemFormatting(object sender, Telerik.WinControls.UI.VisualItemFormattingEventArgs args)
{
args.VisualItem.Font = myFont;
}
private void radTextBox_TextChanged(object sender, EventArgs e)
{
}
}
}
Я не добавил код в InitializeComponents ().
Любые мысли или помощь приветствуются!