4 つのコントロール (ボタン、2 つのドロップダウン リスト、テキスト ボックス) を持つ Telerik Test アプリケーションを作成しました。
私がやろうとしているのは、「プロジェクトの追加」ボタンを押すと、最初のドロップダウン リスト (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() にコードを追加していません。
任意の考えや助けをいただければ幸いです!