|
i've inherited a projects that uses a BindingList to hold DB records. i want to be able to sort the items in the BindingList.
the code for the BindingList-derived class has FindCore, SearchCore and all the things I assume are required to do the sorting. but, i simply cannot figure out how to call it.
ex. the FindCore member looks like this:
protected override int FindCore(PropertyDescriptor property, object key)
{
if (property == null) return -1;
List<T> items = this.Items as List<T>;
foreach (T item in items)
{
string value = (string)property.GetValue(item);
if ((string)key == value) return IndexOf(item);
}
return -1;
}
my problem is... i don't know enough C# to know how to create that PropertyDescriptor object in order to tell the function to search the contained items on a given property.
i've found a dozen articles on the web that tell me how to write the FindCore function, but none that show how to call it.
Cleek | Image Toolkits | Thumbnail maker
|
|
|
|
|
Hi
Have a look at the TypeDescriptor.CreateProperty method.
----------------------------
Be excellent to each other
|
|
|
|
|
thanks, but that's just another maze i can't find my way out of.
what's the "Attribute" parameter for ? how to specify the Type ? etc..
Cleek | Image Toolkits | Thumbnail maker
|
|
|
|
|
Hi
This might help:
Item class:
public class Class
{
public string Property { get { return "hello"; } }
}
MyBindingList:
public int Find( string key )
{
PropertyDescriptor property =
TypeDescriptor.CreateProperty(
typeof( Class ),
"Property",
typeof( string ) );
return FindCore( property, key );
}
Call:
private void button1_Click( object sender, EventArgs e )
{
int i = _List.Find( "hello" );
}
Hope this helps
----------------------------
Be excellent to each other
|
|
|
|
|
|
Hi
Does any one has tutorial, which show how to build DotnetNuke module using C# 2.0
Regards,
chandana
|
|
|
|
|
Virtually all documentation for DNN is using VB.NET. However, the principles are exactly the same. The Framework is the same, the portal software is the same, there is only a difference in about 100 keywords in the language (many of which are are the same, but with different capitalisation). It should therefore not be too difficult to work out what to do in C#.
ColinMackay.net
Scottish Developers are looking for speakers for user group sessions over the next few months. Do you want to know more?
|
|
|
|
|
Hello,
I have a question about the FileInfo object: I'm wondering if anyone eles has experienced this issue.
I'm currently working with Visual Studio 2005 and the .NET Framework 2.0. I just finished debugging a small portion of my code and I noticed the following issue. The FileInfo.Exists property was returning false even when the file did exist on the file system. Here's how I got this to occur:
using System;
using System.IO;
namespace TestCode {
static void Main(string[] args) {
// Construct the FileInfo object
FileInfo someNewFile = new FileInfo( @"C:\myNewFile.txt" );
// Create a new file after creating a FileInfo object
FileStream fs = new FileStream( @"C:\myNewFile.txt", FileMode.Create, FileAccess.ReadWrite,
FileShare.None );
// Create some erroneous data and write it to the file
byte[] bytes = new byte[1] { '\0' };
fs.Write( bytes, 0, 1 );
// Flush and Close the FileStream
fs.Flush();
fs.Close();
// --------- ERROR --------------
// Note the following error: someNewFile.Exists returns FALSE
bool exists = someNewFile.Exists;
Console.WriteLine( "someNewFile.Exists returned " + exists );
}
}
So as you can see, I created the file after instantiating the FileInfo object. I checked the MSDN Documentation for Visual Studio 2005 and did not find any mention of this behavior, so... I'm wondering:
1. Has anyone else experienced this issue?
2. Can this be recreated on someone else's computer with the above code?
3. Is this intentional and simply not documented anywhere?
Thanks!
-Christian
|
|
|
|
|
I believe this is by design, with the the file info class containing static data from instanciation rather than taking the overhead needed to monitor the filesystem for any changes. If you need dynamic updates you'll have to run a FileSystemWatcher in a seperate thread to do the updating, and even then you'll have a slight delay due to when the FSW thread gains a CPU to do it's work.
|
|
|
|
|
Maybe you should first create the file itself and the FileInfo object afterwards cause probably the Exists property determines its return value on basis of information from construction time and not invocation time.
www.troschuetz.de
|
|
|
|
|
Use the Refresh method to update the information in the FileInfo object.
If you use the FileInfo object to create the file, I believe that it will update itself, but if you create the file "behind it's back" it won't be aware of the change, and will return the information that it got when it was created.
How this works is mentioned in the documentation for most of the properties of the object, but not in the documentation of the Exists property.
---
b { font-weight: normal; }
|
|
|
|
|
This is probably not related, but it could be security restrictions on the computer.
Today i wrote some code on a computer that should of worked...the file most definately existed at the path, but creating a stream to the file and testing if it existed with File.Exists kept on reporting that the file did not exist...even though Assembly.Load on a file, even though the file existed,and
Directory.GetFiles showed it...
Look here was the output,...the paths in beginning were files in directory
<br />
C:\Documents and<br />
Settings\jah4\Desktop\Projects\WindowsApplication1\bin\Debug\ClassLibrary1.dll<br />
C:\Documents and<br />
Settings\jah4\Desktop\Projects\WindowsApplication1\bin\Debug\ClassLibrary1.pdb<br />
C:\Documents and<br />
Settings\jah4\Desktop\Projects\WindowsApplication1\bin\Debug\WindowsApplication1.exe<br />
C:\Documents and<br />
Settings\jah4\Desktop\Projects\WindowsApplication1\bin\Debug\WindowsApplication1.pdb<br />
<br />
File or assembly name C:\Documents and<br />
Settings\jah4\Desktop\Projects\WindowsApplication1\bin\Debug\ClassLibrary1.dll,<br />
or one of its dependencies, was not found.<br />
So it turned out some security thing prevented me from loading a file...theirs probably some api i could dllimport to get around that bug , at the very least i could just run notepad which has the sorta access i need to read the file...then to a byte array and my Assembly.Load would probably work...but i'm to lazy for that
|
|
|
|
|
Hi again
Sorry - Forgot to mention that the last post is for compact framework.
Thanks
|
|
|
|
|
Hi,
I am a c# newbie and I am having some problems.
I am trying to draw an image with a transparent background. I wan't to be able to draw it directly onto a form or on to a picturebox (or on top of anything in fact). However, with the code below, when the image is drawn on a form, the area that I want to be transparent is transparent, but it also makes that area of the form transparent so I can see applications behind the form through it Also when I try to draw the image on a picturebox, the pictuebox just covers it up completely.
The code I have written is as follows:
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e )
{
Rectangle imgRect = new Rectangle(0,0, this.Width, this.Height);
Bitmap wibblyBit = new Bitmap(_upImage);
Graphics g = Graphics.FromImage(wibblyBit);
ImageAttributes ia = new ImageAttributes();
Color transparentColor = wibblyBit.GetPixel(0,0);
ia.SetColorKey(transparentColor, transparentColor);
g.DrawImage(wibblyBit, imgRect, 0, 0, upImage.Width, upImage.Height,
GraphicsUnit.Pixel, ia);
//Draw from the memory bitmap
e.Graphics.DrawImage(m_bmpOffscreen, 0, 0);
base.OnPaint(e);
}
Any help would be greatly appreciated.
Thanks in advance
|
|
|
|
|
I'm subscribing to the VisibleChanged event in my user control. However, that's only fired when the value for Visible property is changed from false to true. It is NOT fired when the Visible property is changed from true to false. So in otherwords, I'd like to be notified not only when control is made visible but also when it is being made invisible.
How do I achieve this without overriding the Visible property?
Thanks,
- Malhar
|
|
|
|
|
UserControl classes fire the event on either transition.
Does your user control inherit directly from System.Windows.Forms.UserControl or from another class that may be overriding the Visible property, or the Show() or Hide() methods?
Are you sure the visibility is not being set from true to true, or false to false?
--
I've killed again, haven't I?
|
|
|
|
|
Office Lineman wrote: Are you sure the visibility is not being set from true to true, or false to false?
Nope...
Just to test it out, I tried with a small example.
a) put a PropertyGrid (propertyGrid1) in form
b) put a TextBox (textBox1) in form
c) bind propertyGrid1 to textBox1
d) add a handler for VisibleChanged on textBox1
e) add following code in the handler
this.Text = textBox1.Visible.ToString()
f) Run the program
g) change the "Visible" property of the textbox1 in the propertyGrid1 to true/false. The form title never shows "false" eventhough the propertyGrid1 may show "false" for the Visible property value.
I tested my solution with "MessageBox.Show(..)" instead of "this.Text = ..." but no luck.
- Malhar
|
|
|
|
|
That's bizarre. I followed your same steps in both VS2003 (w/.NET 1.1) and VS2005 (w/.NET 2.0), and the title changes to "True" or "False", appropriately, as I set the Visible property in the property grid.
--
I've killed again, haven't I?
|
|
|
|
|
That is bizzare ... no wonder I couldn't find any documentation stating that events are suppressed when visibility is changed to false. My solution is in VS2003 (1.1) and unfortunately, cannot convert to VS05. I'll see if there something funky going on in my machine.
Thanks,
- Malhar
|
|
|
|
|
Do you have .NET 1.1 SP1 installed?
You can find out if you go to Help->"About Microsoft Visual C# .NET" and look at the version on the Microsoft .NET Framework 1.1. Mine is 1.1.4322 SP1.
This may be one of the many, many bugs[^] addressed in SP1.
--
I've killed again, haven't I?
|
|
|
|
|
I have the same BUG !?!
In fact, the event is not fire when you hide the parent like this :
userControl.Parent.Hide();
|
|
|
|
|
Hi
How i can manage grid view in net 2.0.I mean size adjastmen i have grid view with 10 rows per pages but ther problem is that size is cahage dinamicly
and is dipend from data into this row how i can make to size be sam for differnet data?
good bye
best regards
|
|
|
|
|
I don't think that you can. If you set it to display 10 rows. Then 10 rows will be displayed. The height of the grid will change if any of the text is wrapped. You could put the grid inside a div tag.
Somthing like this.
<div style="OVERFLOW:auto;WIDTH:400px;HEIGHT:500px">
datagird
</div>
"People who never make mistakes, never do anything."
<A href= 'http://toddsnotsoamazinglife.blogspot.com/'>My Blog </a>
|
|
|
|
|
Ok if i don't put 10 rows i just want size to be same for every pages how i can do that???
|
|
|
|
|
i want to add Menu>Submenu dynamically, depending upon the data i receive. till now i did :
<br />
MainMenu mnuMain = new MainMenu();<br />
<br />
MenuItem mnuFile = new MenuItem("&File");<br />
MenuItem mnuMod = new MenuItem("&Module");<br />
<br />
mnuMain.MenuItems.Add(mnuFile);<br />
mnuMain.MenuItems.Add(mnuMod);<br />
<br />
MenuItem mnuFExit = new MenuItem("E&xit", new EventHandler(mnuFExit_Click),Shortcut.CtrlX);<br />
<br />
mnuFile.MenuItems.Add(mnuFExit);<br />
<br />
foreach (string strKeyName in arrValue)
{<br />
mnuMod.MenuItems.Add(strKeyName,new EventHandler(mnuModMenu_Click));<br />
}<br />
till here it's working perfectly. now i want to add submenu to those menu i'v added dynamically. only i have the text of those menu(strKeyName), but don't have any name so can't add menuitems referring them. how can i do that?
|
|
|
|