|
Please use pre tags for code blocks. It makes the reading easier.
The first method return the node added so you can use it's properties on the calling side:
...
TreeNode addedNode = AddNode(MyTreeView.Nodes, "New node text");
addedNode.Tag = "XYZ";
addedNode.ImageIndex = 123;
...
Or if you want, add a variable inside the method and assign the properties you want in the method:
TreeNode AddNode(TreeNodeCollection Parent, string text)
{
TreeNode temporaryNode;
foreach (TreeNode node in Parent)
{
if (node.Text == text)
return node;
}
temporaryNode = Parent.Add(text);
temporaryNode.Tag = "XYZ";
temporaryNode.ImageIndex = 123;
...
return temporaryNode;
}
The same idea goes with the other method.
In all cases you may have to add parameters to the methods or extra logic how you decide what tag, imageindex etc is set.
This is quite basics, so I think you should get a good book concerning C# programming.
|
|
|
|
|
Thanks for this answer...I will try it out.
I have read
Visual C#.Net by Williams MS Press
And currently reading
Programming Visual C# 2008 by Marshall MS Press
Can you recommend a book??
Thanks
Rafone
Statistics are like bikini's...
What they reveal is astonishing ...
But what they hide is vital ...
|
|
|
|
|
|
Thanks;
I had tried your suggestion before asking the questions but in looking at your reply realized that I was doing it in the wrong place.
Here is what worked..
TreeNode AddNode(TreeNodeCollection Parent, string text)
{
TreeNode temporaryNode;
foreach (TreeNode node in Parent)
{
if (node.Text == text)
{
return node;
}
}
temporaryNode = Parent.Add(text);
temporaryNode.Name = text;
temporaryNode.Text = text;
temporaryNode.Tag = "XYZ";
temporaryNode.ToolTipText = "XYZ";
temporaryNode.ImageIndex = 123;
temporaryNode.SelectedImageIndex = 123;
return temporaryNode;
//
return Parent.Add(text);
}
Thanks Again
Rafone
Statistics are like bikini's...
What they reveal is astonishing ...
But what they hide is vital ...
|
|
|
|
|
Glad if it helped
|
|
|
|
|
As a followup for anyone reading this. This part of the above code has unexpected results.....
temporaryNode = Parent.Add(text);
temporaryNode.Name = text;
temporaryNode.Text = text;
temporaryNode.Tag = "XYZ";
temporaryNode.ToolTipText = "XYZ";
temporaryNode.ImageIndex = 123;
temporaryNode.SelectedImageIndex = 123;
return temporaryNode;
But on the whole if you are looking for a recursive way to add tree nodes the orginally posted code works great. It's just not full featured.
Rafone
Statistics are like bikini's...
What they reveal is astonishing ...
But what they hide is vital ...
|
|
|
|
|
Hi experts.
I wanna create a Win App that needs a simple database, just for saving plain text and plain numbers.
Now i don't know which one is better ! sdf Database , or mdf database or XML.
What's your suggest ?
Could u guide me ?
Thank you.
|
|
|
|
|
|
What about SQLite? It's also used by Firefox 3 for storing passwords and other data.
modified 12-Sep-18 21:01pm.
|
|
|
|
|
This is really a matter of opinion, so here's mine:
- for single user application with small amount of local data => SQL Server Compact Edition
- for multi user application with medium amount of shared data => SQL Server Express / Oracle XE
- for multi user application with large amount of shared data => SQL Server Std or Enterprise / Oracle 11g
I believe that the next question you would have is: what is a small or large amount of data. Again a matter of opinion but perhaps some quantities (these are certainly not accurate but give some idea):
- small amount could be less than 1 GB, perhaps less than a hundred tables and no table contain over 10 000 rows
- large amount could be more than 4 GB of actual data, perhaps 500+ tables tables and and some tables contain over 10 000 000 rows. User amount is high, let's say over 1000 concurrent.
I already regret that I wrote any quantítative information since it's really not that simple (also consider licensing, support level, activity levels, transaction counts etc.) but I'm prepared to get flamed
|
|
|
|
|
|
You're welcome
|
|
|
|
|
Hi All,
Can anybody help me in creating ComboBox in Datagrid for a Windows application. If possible pls. provide me a small code snippet.
Thanks,
Abdul Aleem.
Thanks & Regards,
Md. Abdul Aleem
NIIT technologies
|
|
|
|
|
You want code snippet.
OK. Here is a code snippet.
if (knowledge < 0)
{
MessageBox.Show("Google is my friend");
}
Henry Minute
If you open a can of worms, any viable solution *MUST* involve a larger can.
|
|
|
|
|
It's all done in the designer. Drop in the Datagridview, edit the Columns collection in the properties view, set the ColumnType to DataGridViewComboBoxColumn, then edit the Items collection.
You can also set the combobox items in code or use a datasource to fill the combo box.
SS => Qualified in Submarines
"We sleep soundly in our beds because rough men stand ready in the night to visit violence on those who would do us harm". Winston Churchill
|
|
|
|
|
At our software company, we use Vista x64 machines for programming.
We have a network share where we put some of our dll's for 'global' usage.
The permissions on this network share are set to: 'Everyone Full Control' and 'Security: Domain Users Full Control'.
In our Visual Studio Team System 2008 IDE we CAN reference the dll's in all our assemblies.
BUT, when we create a Test Project with Unit Test classes, and we reference the dll's on this share, we get the following error when we start the test runs:
Failed to queue test run 'xxxxx': Test Run deployment issue: The location of the file or directory '\\xxxxx\Binaries\xxxxx.xxx.dll' is not trusted.
On all the websites I found with this error message, the solution is:
for x86
c:\Windows\Microsoft.NET\Framework\v2.0.50727\CasPol -m -ag 1.2 -url \\xxxxx\Binaries\* FullTrust
for x64
c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CasPol -m -ag 1.2 -url \\xxxxx\Binaries\* FullTrust
But this does not work.
I downloaded the SDK, and tried to do the same with the .NET Framework 2.0 Configuration wizard.
>> Console Root >> .NET Framework 2.0 Configuration >> My Computer >> Runtime Securyti Policy >> Machine >> Code Groups >> All_Code >> New >> Name: xxx, Description xxx >> Type: URL: \\xxxxx\Binaries\* >> FullTrust
But still nothing is trusted....
I even set (on the server) >> System Properties >> Advanced >> Performance Settings >> Data Execution Prevention >> Turn on DEP for essential Windows programs and services only (that's how desperate we are).
|
|
|
|
|
Good Afternoon All
i have the Following code that retrieve the file names from the Certain Directory and bind it to the Dropdownlist. like this
DirectoryInfo dir = new DirectoryInfo(@"C:\DATABASES\");
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
cmbrestore.Items.Add(Convert.ToString(file));
}
The code is working, but now if there is a File with same name , it will display them all.
How can i make sure that it will show the File names Distinctively ?
How can i exclude certain File extension from being displayed from the Dropdownlist ?
Thank you
Vuyiswa Maseko,
Few companies that installed computers to reduce the employment of clerks have realized their expectations.... They now need more and more expensive clerks even though they call them "Developers" or "Programmers."
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.tiyaneProperties.co.za
vuyiswam@its.co.za
|
|
|
|
|
Vuyiswa Maseko wrote: The code is working, but now if there is a File with same name , it will display them all.
You can't have two files with the same name in the same directory so, if you are just adding from one directory, this isn't a problem.
Vuyiswa Maseko wrote: How can i exclude certain File extension from being displayed from the Dropdownlist ?
Before you call Items.Add, check the file extension. One way to do this would be:
if (Path.GetExtension(file.FullName) != ".cs")
{
cmbRestore.Items.Add(file.Name);
}
|
|
|
|
|
When i mean same File with the same name from the Directory , i meant same file with the same name but diffent extension i have done the Following so far
DirectoryInfo dir = new DirectoryInfo(@"C:\DATABASES\");<br />
<br />
FileInfo[] files = dir.GetFiles();<br />
<br />
foreach (FileInfo file in files)<br />
{<br />
if (file.Extension != ".mdf" && file.Extension != ".ldf")<br />
{<br />
<br />
cmbrestore.Items.Add(Convert.ToString(file.Name));<br />
}<br />
}
Thank you
Vuyiswa Maseko,
Few companies that installed computers to reduce the employment of clerks have realized their expectations.... They now need more and more expensive clerks even though they call them "Developers" or "Programmers."
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.tiyaneProperties.co.za
vuyiswam@its.co.za
|
|
|
|
|
With a bit of Linq, you can retrieve distinct filenames quite easily and exclude other values at the same time. Try this one out for size:
List<string> extensions = new List<string>();
extensions.Add(".xls");
extensions.Add(".zip");
FileInfo[] di = new DirectoryInfo(sampleDirectory).GetFiles();
var query1 = (from d in di
let ShortName = Path.GetFileNameWithoutExtension(d.Name)
where !(extensions.Any(n => n == Path.GetExtension(d.FullName)))
select new { ShortName }).Distinct();</string></string>
|
|
|
|
|
Pete O'Hanlon wrote: so, if you are just adding from one directory, this isn't a problem.
Even if he isn't adding from one folder, GetFiles returns the fully qualified path of each file, so every entry in the returned array is technically going to be unique.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
John Simmons / outlaw programmer wrote: GetFiles returns the fully qualified path
Not quite.
Directory.GetFiles() returns a string[] including full paths,
DirectoryInfo.GetFiles() which the OP was using returns a FileInfo[] for which MSDN says:
"... there are cases where the string returned by the ToString method does not represent the fully qualified path. For example, when you create a FileInfo object using the GetFiles method, the ToString method does not represent the fully qualified path."
Luc Pattyn [Forum Guidelines] [My Articles]
I use ListBoxes for line-oriented text output (not TextBoxes), and PictureBoxes for pictures (not drawings).
modified on Friday, June 10, 2011 12:21 PM
|
|
|
|
|
To ignore file with certain extensions you can check the fileinfo.Extension. One way to ignore duplicates would be to use cmbrestore.Items.Contains() before adding.
Hope this helps
Bob
Ashfield Consultants Ltd
Proud to be a 2009 Code Project MVP
|
|
|
|
|
Vuyiswa Maseko wrote:
How can i make sure that it will show the File names Distinctively ?
As Pete said, if you're not listing recursively, this can't happen. But you can use a HashSet (.NET 3.5) or check with List.Contains if the item already exists before adding it.
Vuyiswa Maseko wrote: How can i exclude certain File extension from being displayed from the Dropdownlist ?
if(file.EndsWith(".ext") ...
our use a regex.
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
In addition to what the others have said, if you simply wish to exclude all .CS files, you have to use Directory.GetFiles(yourDir, "*.cs"). This actually gives you a list of all .CS files, so you have to use Directory.GetFiles(yourDir) and exclude all matches from the first call, from the matches from the second call. I'd be interested to know if there's a better way of doing it, though.
Cheers,
Vıkram.
I don't suffer from insanity, I enjoy every moment of it.
|
|
|
|