|
Does it need to be a struct?
---
b { font-weight: normal; }
|
|
|
|
|
yes absolutely, it's business objects in released software production code, there is a huge system revolving around it for reporting, displying in grids and filtering and sorting, matching up sql column names and localized text keys to public properties in the struct, binding it to reports and grids etc etc and to top it all off I'm over 300 of them now so absolutely no possibility of doing it any differently at this point, on top of which it's the best way to do it.
|
|
|
|
|
I see. To me it sounds like it should have been a class from the beginning, but I guess you are stuck with it...
Could you make an interface that the structs would implement to give access to the data in the struct? Then you could put the common code in a class and use it from the struct. Something like:
interface IDataAccess {
int SomeData { get; set; }
...
}
public class DataHandler {
private IDataAccess dataAccess;
public DataHandler(IDataAccess dataAccess) { this.dataAccess = dataAccess; }
public void DoSomething() {
this.dataAccess.SomeData = 42;
}
}
public struct SomeStruct : IDataAccess {
public DataHandler Handler;
public SomeStruct() {
Handler = new DataHandler(this);
}
public int SomeData { get {...} set {...} }
...
}
---
b { font-weight: normal; }
|
|
|
|
|
John Cardinal wrote: Does anyone have any ideas or suggestions?
Use C++
[Modified] -- had to get that in quick before anyone beat me to it
Now I go back and read your post and I must not understand the problem, could you expand a bit?
John Cardinal wrote: I can't just take the similar bits and make a new class out of them because it's a big struct and method to fill that struct from a database
I don't understand that.
|
|
|
|
|
What about creating a simple custom tool.
This[^] article is very to the point, I'm guessing that all you'll have to do is read in the contents of the file, replace #include<filename> with the contents of filename and return the bytes.
The article explains more fully what you have to do. I also seem to remember that there was also an article about custom tools here.
Formula 1 - Short for "F1 Racing" - named after the standard "help" key in Windows, it's a sport where participants desperately search through software help files trying to find actual documentation. It's tedious and somewhat cruel, most matches ending in a draw as no participant is able to find anything helpful. - Shog9
|
|
|
|
|
Thanks, I'll have a look.
|
|
|
|
|
Thanks for answering my question from earlier in the day as well
I posted one this morning about writing a custom tool. It was excellent luck that you happened to post exactly what I needed.
|
|
|
|
|
gantww wrote: I posted one this morning about writing a custom tool
Which question what, did I respond to it or did you stumble across this answer?
Formula 1 - Short for "F1 Racing" - named after the standard "help" key in Windows, it's a sport where participants desperately search through software help files trying to find actual documentation. It's tedious and somewhat cruel, most matches ending in a draw as no participant is able to find anything helpful. - Shog9
|
|
|
|
|
John Cardinal wrote: What I'm currently doing is copying and pasting but this is tedious and what I'd really like to do is define the chunks of code that are common and have the compiler insert them into the classes on compiling. AFAIK this isn't a feature in visual studio 2k5 or c#.
Does anyone have any ideas or suggestions?
Hmm, I don't think this is what you're looking for, but code snippets might help automate the copying and pasting. It's not the same as a compiler inserting code into a class at compile time, which, to be honest, I'm not really sure I understand, but it would certain save on key strokes.
|
|
|
|
|
Yes, use abstraction and interfaces, you're working too hard.
|
|
|
|
|
Hello,
I want to force the user to close first the child form befor he/she can click on the mainform. just like those message box.
How do you do that?
Donkaiser
|
|
|
|
|
use ShowDialog() instead of Show()
|
|
|
|
|
My typing is slow
Sincerely,
Elina
Life is great!!!
Enjoy every moment of it!
|
|
|
|
|
|
Open your form as a DialogResult.
In order to do that, open it this way:
myChildForm.ShowDialog()
Hope that helps
Sincerely,
Elina
Life is great!!!
Enjoy every moment of it!
|
|
|
|
|
I want to add images to an imagelist while the program is running but I keep getting an out of memory exception.
My code looks like this:
foreach (string n in classfunctions.fxLoadXML())
{
this.imageList1.Images.Add(Bitmap.FromFile(n));
}
where fxLoadXML returns an array.
//Nick
|
|
|
|
|
First things first, you might want to check and make sure that the file you are sending to Bitmap.FromFile is actually there and is a valid image format.
Also, how many images are we talking about? The imagelist probably has some sort of upper limit. Are the images all the same size, colordepth, format, etc.?
Also, you may want to check the documents on the imagelist. It may not require the Bitmap to hang around after being added to the imagelist - if so, you'll want to dispose it.
|
|
|
|
|
Okay, thanks, the problem was a combination of I was trying to add an image format, which was not supported, and that I didn’t dispose the imagefile.
//Nick
|
|
|
|
|
I wasn't sure which board to post this because it's not technically just C#, or just ASP.NET so I apologize in advance.
I have a connection string key to a SQL Server database. I made a copy of the database on my computer so I can test the edit function of nested datagrids (which I've read can be tricky).
I've never had to point to my own machine before and my key is giving me errors.
This is how I point to the actual real server:
<add key="ConnectionString" value="Data Source=SERVER-SQLSC1;Initial Catalog=Parts;User ID=aspuser;Password=crlamo5" />
This is what I tried for localhost:
<add key = "ConnectionString" value = "Data Source = localhost;Initial Catalog=PartsDB;"/>
I renamed the database PartsDB to avoid confusion. My computer's name is PROC-PC-11. I tried that instead of localhost and I still had an error when trying to retrieve data from the database.
Can someone point me in the right direction?
Many thanks as always!
|
|
|
|
|
I have several instances of a UserControl on a Form. Each UserControl represents one of several possible audio channels.
This UserControl has a public property describing which audio channel the particular instance represents. The list of available audio channels is in an enum.
I've been able to implement "setting" this property and the corresponding updation of a label in the UserControl to reflect which channel that particular instance of the UserControl is currently representing.
The width of the control is constant. The width of the text is not. For example, Left, Right, Left Surr, Right Surr, etc.
How do I get the text centered with respect to the width of the control.
I tried lblChannel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter but that doesn't work. I suppose that only aligns text with respect to the label.
Do I need to calculate the location of the label for each channel selection?
Thanks!
|
|
|
|
|
Well, if middlecenter works to calculate with respect to the label, make the label fill the user control horizontally. As long as AutoSize is turned off and you have the label anchored to the left and right, it should work.
Logifusion[^]
|
|
|
|
|
Thanks for your reply!
Turning Autosize off results in the label's text being truncated. "Left Surround" shows up as "Left".
What am I doing wrong?
|
|
|
|
|
You can either spread the label to the whole width of the usercontrol and then when it is TextAlign = center it will be automaticly centered.
Or you can use this: (this.Size.Width - lbl1.Size.Width - 10) / 2 -> this will be cenetered. (Set it as the location with the y position that you need.)
Hope I helped...
NaNg.
|
|
|
|
|
Ah! Ok... I didn't think about spreading the label to cover the width of the control. (sorry, I'm new to this still!)
Thanks for your reply! It works now.
|
|
|
|
|
table.clear()?
table = null?
table.remove?
|
|
|
|