webForumDet fria alternativet

TreeView-frågetecken

6 svar · 258 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#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?

juventus1Medlem 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;
sawMedlem 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.

nikoMedlem 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.

sawMedlem 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...

nikoMedlem 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();
sawMedlem 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.

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)