Функция C# TreeView NodeMouseclick или Click показывает предыдущий выбранныйC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Функция C# TreeView NodeMouseclick или Click показывает предыдущий выбранный

Сообщение Anonymous »

Здравствуйте, я столкнулся с необычной проблемой. Я использую форму Windows (.NET Framework) и создал TreeView с образцом списка из базы данных. Я хотел бы отобразить информацию о выбранном узле пользователем. Но когда я нажимаю на узел «Скажем, дочерние финансы», в окне сообщения отображается ранее выбранный «Инвентарь» вместо «Детские финансы», а затем также обновляется текстовое поле «Родительское значение» до «Инвентаризация». Я делюсь своим кодом и изображением того, что происходит. Я уже пробовал клик/мышь, а затем попробовал Treenodemouseclickeventargs. Может ли кто-нибудь мне помочь? Я не уверен, есть ли в моем коде что-то, над чем мне стоит поработать.

Код: Выделить всё

private void Form1_load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"Server=localhost\SQLEXPRESS;Database=sample;Trusted_Connection=True;");
String Sequel = "SELECT MAINMNU,MENUPARVAL,STATUS FROM [sample].[accounts].[MNUPARENT]";
SqlDataAdapter da = new SqlDataAdapter(Sequel, conn);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
parentNode = treeView1.Nodes.Add(dr["MAINMNU"].ToString());
PopulateTreeView(Convert.ToInt32(dr["MENUPARVAL"].ToString()), parentNode);

}
treeView1.ExpandAll();
}
private void PopulateTreeView(int parentId, TreeNode parentNode)
{
SqlConnection conn = new SqlConnection(@"Server=localhost\SQLEXPRESS;Database=sample;Trusted_Connection=True;");
String Seqchildc = "SELECT MENUPARVAL,FRM_NAME,MNUSUBMENU FROM sample.accounts.MNUSUBMENU WHERE MENUPARVAL=" + parentId + "";
SqlDataAdapter dachildmnuc = new SqlDataAdapter(Seqchildc, conn);
DataTable dtchildc = new DataTable();
dachildmnuc.Fill(dtchildc);
TreeNode childNode;
foreach (DataRow dr in dtchildc.Rows)
{
if (parentNode == null)
childNode = treeView1.Nodes.Add(dr["FRM_NAME"].ToString());
else
childNode = parentNode.Nodes.Add(dr["FRM_NAME"].ToString());
PopulateTreeView(Convert.ToInt32(dr["MNUSUBMENU"].ToString()), childNode);

}
}
private void treeView1_MouseSingleClick(object sender, TreeNodeMouseClickEventArgs e)
{
var menuItem = treeView1.SelectedNode.Text;
if (menuItem != null)
{
MessageBox.Show(menuItem);
textBox_parentVal.Text = menuItem;
}
}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/791 ... s-selected
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»