c# - How do i make that it will register to the click event but won't add the items more then once in the richTextbox mouseenter? -
toolstripmenuitem s; private void recentfilestoolstripmenuitem_mouseenter(object sender, eventargs e) { if (lines != null) { (int = 0; < lines.length; i++) { s = new toolstripmenuitem(lines[i]); if (!recentfilestoolstripmenuitem.dropdownitems .cast<toolstripmenuitem>() .any(x => x.text == lines[i])) { recentfilestoolstripmenuitem.dropdownitems.add(s); s.click += s_click; } } } }
it's never pass if checking.
i need check if items(lines) exist in recentfilestoolstripmenuitem.dropdownitems not add them more once each time i'm enetering mouse. , register s.click once i'm clicking on item.
edit form1 constructor read text file recentfiles.txt , add lines items dropdownitems:
recentfiles = @"e:\recentfiles.txt"; if (!file.exists(recentfiles)) { recentfiles = new streamwriter(recentfiles); recentfiles.close(); } else { lines = file.readalllines(recentfiles); items = file .readlines(recentfiles) .select(line => new toolstripmenuitem() { text = line }) .toarray(); using (streamwriter writer = new streamwriter(recentfiles)) { (int = 0; < lines.length; i++) { if (file.exists(lines[i])) { writer.writeline(lines[i]); { text = lines[i]; } } } } lines = file.readalllines(recentfiles); items = file .readlines(recentfiles) .select(line => new toolstripmenuitem() { text = line }) .toarray(); recentfilestoolstripmenuitem.dropdownitems.addrange(items); }
the content of recentfiles.txt is:
d:\test.txt d:\test1.txt
Comments
Post a Comment