|
Member 10347092 wrote: I want to that when i inherit FormBase class then it automatically gives me output as my panel is center. Add the panel to the mainform; or loop all the controls on the form and look for the panel that needs to be resized.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
..what's not good about the answer?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I like it
Countervote given
I will never again mention that Dalek Dave was the poster of the One Millionth Lounge Post, nor that it was complete drivel.
How to ask a question
|
|
|
|
|
I've been working on a project for the past week or so, and it's come to my attention that I need a method of being able to 'track' the index of an item within a collection.
A prime example of what I'm trying to achieve is the System.Windows.Forms.ListViewItem class, which retains an Index property which is always matched to the actual index within the collection of a System.Windows.Forms.ListView .
A method I've been trying is iterating through the collection any time an update ends and updating each item individually. However, I have noticed that this takes a ridiculously long time when we begin achieving millions of rows. Items are removed from the collection, but then after the update has finished, it has to iterate through the collection to synchronize the indices.
Other than using LINQ on the collection from the individual item, can anyone suggest a better way to maintain the index of the item within the list?
|
|
|
|
|
|
I believe an issue with using IndexOf is that if the same item is added more than once to the collection, the value returned by IndexOf will be the first index only.
The item I'm storing in the collection could be added multiple times. For instance:
public class MyClass
{
public string Text { get; set; }
public int Index { get; set; }
};
private void ExampleList()
{
List<MyClass> list = new List<MyClass>();
MyClass first = new MyClass() { Text = "Hello" };
list.Add(first);
list.Add(first);
MyClass second = new MyClass() { Text = "Goodbye" };
list.Add(second);
System.Diagnostics.Debug.WriteLine(list[0].Index);
System.Diagnostics.Debug.WriteLine(list[1].Index);
System.Diagnostics.Debug.WriteLine(list[2].Index);
}
Obviously if multiple instances of the same object is going to be an issue, I could re-factor my code to prevent multiple additions, but it'd be preferable if the developer had the option to add the same item twice.
Otherwise, am I restricted entirely to updating the Index property on each collection change? I just wondered if there was some work-around (ie, creating an index array or using some sort of indexing engine built into the framework.)
Thanks
|
|
|
|
|
Chris Copeland wrote: Obviously if multiple instances of the same object is going to be an issue You didn't add multiple instances; you added a single object to the list twice. Now, you'd have to loop the list to find ALL the objects if there can be multiple - but then the property "Index" on the object is erroneous - if the object can be added to the list twice, then "Index" should return an array, returning 0 and 1 as the indexes where it is to be found.
Alternatively;
public class MyClass: ICloneable
{
public string Id = Guid.NewGuid().ToString();
public string Text { get; set; }
public override string ToString()
{
return Text;
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
public object Clone()
{
return new MyClass() { Text = this.Text };
}
}
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I'd not thought about adding a unique identifier property. That makes much more sense than actually indexing the position of the item. I suppose the chances of collision are exceptionally low too when using Guid .
Thanks for the assistance, I'll give this a try when I land home!
|
|
|
|
|
Chris Copeland wrote: The item I'm storing in the collection could be added multiple times. This wasn't obvious (to me) in your original post. One solution would be to write an extension method IList<T>.IndicesOf(T) that would return an IEnumerable<int> of indices. But clearly, this doesn't scale when you have a large number of items.
/ravi
|
|
|
|
|
I'm with Ravi on that, what keeps you from adding / updating the information of an item at the time you access it by using IndexOf ()?
I will never again mention that Dalek Dave was the poster of the One Millionth Lounge Post, nor that it was complete drivel.
How to ask a question
|
|
|
|
|
Hi
Iam using VS13.
I have been using the "built" in DataGrid but now need some more functions.
I need a DataGrid that can:
Bind to BindingSource so i can use the BindingNavigator
Sort
Filter
Group
Edit and save
Exporting
Printing
Master/detail/detail (not necessary nested)
Etc
Budget 0-200 US Dollar.
Does anyone have som sugestions?
BR
Jonas
|
|
|
|
|
Google?
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
|
|
|
|
|
thank you for that very good answer.
I will email to info@google.com and se if they have a answer for me.
/J
|
|
|
|
|
hey brother,
Quote: Asp.Net unleashed by Sir Stephen Walther.
start reading.
Thanks a ton,
Rahul
|
|
|
|
|
Try Telerik or Devexpress. Both have free trials so you can check the grids out and see if they meet your needs.
|
|
|
|
|
Both of which are beyond his budget!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
thanks,
i have had a look at both and they look more or less perfect but to expensive.
Its only for one small project.
|
|
|
|
|
|
Hi,
I’m writing a desktop app which will export data into a word document but have a question about which
Microsoft.Office.Interop.Word .dll to use for maximum compatibility.
I understand that v11.0.0.0 is for Word 2003, but if I only include this dll in my program, will a user running Word 2010 or 2013 be able to use the dll?
Conversly, if I use v14.0.0.0, will users running Word 2003 be able to use the functionality?
I guess the question is; is the user’s installation of Word backwards compatible with older interop dll’s. Or are the interop .dll’s backwards compatible with older installations of Word? I just want to ensure that my application can write to any installation on Word the user has.
Thanks in advance.
|
|
|
|
|
Member 9809506 wrote: Or are the interop .dll’s backwards compatible with older installations of Word? From 2007 to 2003, mostly yes[^];
Office Blogs wrote: Backward Compatibility is an area we where have focused much attention. We understand that as a platform, we must take steps to ensure that the managed solutions compiled against a 2003 PIA will continue to run properly against the 2007 version. To do this, we’ve taken some great strides during development of the individual object model to ensure that the changes to the OM do not break runtime compatibility. It's not compatible with the predecessor of 2003 (XP). For newer versions, there's binding redirection[^].
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I want Code to Display each IP address and Host No in ListBox using C#
|
|
|
|
|
Can you clarify please, which IPs? - Local to machine or on a particular subnet?
|
|
|
|
|
Write it.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Well, everyone should have a hobby.
Myself I want a Google Chromecast. But I've done something towards getting one: I placed an order with a shop. So what have you done to get what you want? Apart from posting here, that is?
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
|
|
|
|
|