webForumDet fria alternativet
Logga in / Bli medlem

TreeView-frågetecken

.NET

6 svar · 260 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1
//så här var det när jag hadde en listbox 

int kund = listBoxTotal.SelectedIndex; 

//men när jag försöker så här med treeView så får jag fel 
            
int kund = treeView1.SelectedNode; 
//error: 
 Cannot implicitly convert type 'System.Windows.Forms.TreeNode' to 'int' 

Jag måste alltså ha reda på vilket index kun har för att kunna ställa mig där igen.
//med listbox 
listBoxTotal.SelectedIndex=kund; 
//borde alltså vara 

treeView1.SelectedNode=kund

Hur bör man lösa det?

Medlem sedan dec. 2000399 inlägg
#2
TreeNode kundNode = treeView1.SelectedNode;
// Om du behöver göra något med index:et
int kundID = Convert.ToInt32(kundNode.Text);

treeView1.SelectedNode = kundNode;
Medlem sedan mars 20011 880 inlägg
#3

Jag tror att jag måste visa lite mera:

//så här var det med listbox
//int kund = listBoxTotal.SelectedIndex;
			
TreeNode kundNode = treeView1.SelectedNode;		
int a = 0;			
foreach(string värde in AllaVärden)			
{				
ds.Tables["frånKund"].Rows[0][a] = värde;		
a++;			
}			
UppdateraDatabasen();			
FyllPåTotalt();
			
//listBoxTotal.SelectedIndex=kund;			
//int kundID = Convert.ToInt32(kundNode);		
treeView1.SelectedNode = kundNode;

Förklaring:
Detta hänger ihop med uppdatering. När man har klickat på ett namn i treView så kan man uppdatera, när uppdateringen är klar så skall man kunna ställa sig på rätt nod.
M A O hjälpen ovan hjälpte tyvärr inte.

Medlem sedan juni 20022 599 inlägg
#4

juventus1:s metod borde fungera alldeles utmärkt. Eventuellt behöver du anropa treeView1.focus(). För att verkligen se markeringen.

Medlem sedan mars 20011 880 inlägg
#5

Dettrodde jag också, men icke.
Jag har dock glömt tala om att det rör sig om rotnoder.
Jag har försökt så här:

treeView1.SelectedNode = treeView1.Nodes[kundNode];

men inte...

Medlem sedan juni 20022 599 inlägg
#6

Jag har dock glömt tala om att det rör sig om rotnoder.

Rotnod, eller inte. Det juventus1 skrev ska fungera.

private TreeNode minGlobalaUndanSparadeNod;

// På ett visst ställe i programmet:
// Spara undan markeringen för framtida bruk.
minGlobalaUndanSparadeNod = treeView1.SelectedNode;

// 10 minuter och 20 koppar kaffe senare nån helt annanstans i programmet:
// Vi återställer markeringen vi sparade undan och och flyttar fokus till treeviewen.
treeView1.SelectedNode = minGlobalaUndanSparadeNod;
treeView1.focus();
Medlem sedan mars 20011 880 inlägg
#7

Niko och juventus1!
Jag har full respekt för er båda, och jag är väldigt tacksam för att ni har försökt att hjälpa mig. Dock fungerade inte eran kod, men jag löste det, titta:

int kund =(minGlobalaUndanSparadeNod.Index);
			
treeView1.SelectedNode = treeView1.Nodes[kund];
treeView1.Focus();

Detta innebär att när ett namn är uppdaterat, den "stannar" kvar på samma post i treeView:n.

Tack till er bägge.

370 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
123 ms — deklarationer (db)
122 ms — hämta statistik (db)
122 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)