|
i decompiled the dll and got the files
now how can i connect dt with particular asp page for registration i got registration.cs,for career i got career.cs files how do i connect dem with dere pages
|
|
|
|
|
Please - no text speak. I can't translate what you put in to that question. Try again without the text speak.
|
|
|
|
|
i didnt understand wht is text speak???
|
|
|
|
|
Hi, I wanted to use these statements to convert a string to an object instance but it gave me this error:
-------------------------------
An unhandled exception of type 'System.ArgumentNullException' occurred in mscorlib.dll
Additional information: Value cannot be null.
-------------------------------
I'm fully sure that I wrote the string phrase right but I don't know for what purpose this error comes.
Here's the code:
Type t = Type.GetType("pictureBox99." + "BackgroundImage");
PictureBox picture = Activator.CreateInstance(t) as PictureBox;
picture.BackgroundImage = Resource1.island;
|
|
|
|
|
Debug it and see if "t" is null or not.
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Please stand in front of my pistol, smile and wait for the flash - JSOP 2012
|
|
|
|
|
Suppose it is null, what happens next? Or clearly, what should I do to stop getting errors?
|
|
|
|
|
There's absolutely no need to use Activator.CreateInstance in your code sample. You already know that you are trying to create a PictureBox, so just use new.
|
|
|
|
|
Yes, I know that the object will be a pictureBox but for some matters in my software's development I need to go through this.
|
|
|
|
|
Well, the problem in your code is that you are retrieving the type of BackgroundImage - which is Image , and then attempting to cast that into a PictureBox . You can't do this - hence the reason that the value of picture is null. In your sample, you really need to do this:
PictureBox picture = new PictureBox();
picture.BackgroundImage = Resource1.island; You will also need to place this control on the screen (and add it to the Controls collection of its parent).
|
|
|
|
|
Here's the real problem: I have 81 pictureBoxes and I want to change their BackgroundImage at once. I'm looking for a solution to stay away from writing 81 statements. I need a code snippet to do so.
|
|
|
|
|
Are you trying to convert them into the same image?
|
|
|
|
|
Yes. I'm trying to reach something like this:
for (Counter = 1; Counter <= 81; Counter++)
{
picturebox|COUNTER|.BackgroundImage = Resource1.Img1;
}
|
|
|
|
|
Off the top of my head, I would possibly use something like this:
private void ChangePictureBoxes(Control parentControl, Image img)
{
foreach (Control control in parentControl.Children)
{
PictureBox picture = control as PictureBox;
if (picture != null)
{
picture.BackgroundImage = img;
continue;
}
ChangePictureBoxes(control);
}
}
|
|
|
|
|
The Visual Studio says " ~Control does not contain a definition for Children"!?
|
|
|
|
|
Replace Children with Controls . I just knocked this snippet up in the CP editor.
|
|
|
|
|
Mission Done! Thanks a lot
|
|
|
|
|
No problem. The key to this trick is the fact that your control could be nested inside any one of a number of control containers - this recursive method is a handy way to iterate over a form and find ALL instances of a particular type.
|
|
|
|
|
It's Controls[^], not Children, in .Net. But yes, this is roughly what I just posted.
|
|
|
|
|
Thanks - I just knocked this up in the CP editor.
|
|
|
|
|
Okay, I've read this whole thread and you're horribly confused about classes and instances. Your user name indicates you come from non-class-based procedural languages, and perhaps you need to keep the Object Oriented chapter of your C# book open while you learn!
The failed code that you are trying here is trying to find a type, and create a new instance of that type. Activator.CreateInstance(sometype) is logically equivalent to new sometype(), and in fact the snippet you posted can be written exactly as
PictureBox picture = new pictureBox99.BackgroundImage();
picture.BackgroundImage = Resource1.island;
Hopefully you can see why that doesn't work!
You are not trying to create a copy of something whose final type is not known at compile time, which is about the only time I've needed to use reflection based instantiation. No, what you want to do is find all the instances and do the same thing to them:
foreach(Control c in Controls){
PictureBox picture = c as PictureBox;
if(picture != null)
picture.BackgroundImage = Resource1.island;
}
or with Linq:
this.Controls.Select(c => c as PictureBox).Where(c => c != null).ToList().ForEach(pb => pb.BackgroundImage = Resource1.island);
(the ToList being necessary because ForEach isn't defined except on Lists).
|
|
|
|
|
look here:
private void ResetPictureBoxes()
{
pictureBox9.BackgroundImage = Resource1.sea;
pictureBox40.BackgroundImage = Resource1.sea;
pictureBox1.BackgroundImage = Resource1.sea;
pictureBox100.BackgroundImage = Resource1.sea;
pictureBox101.BackgroundImage = Resource1.sea;
pictureBox102.BackgroundImage = Resource1.sea;
pictureBox103.BackgroundImage = Resource1.sea;
pictureBox104.BackgroundImage = Resource1.sea;
pictureBox105.BackgroundImage = Resource1.sea;
pictureBox13.BackgroundImage = Resource1.sea;
pictureBox14.BackgroundImage = Resource1.sea;
pictureBox15.BackgroundImage = Resource1.sea;
pictureBox16.BackgroundImage = Resource1.sea;
pictureBox17.BackgroundImage = Resource1.sea;
pictureBox18.BackgroundImage = Resource1.sea;
pictureBox19.BackgroundImage = Resource1.sea;
pictureBox2.BackgroundImage = Resource1.sea;
pictureBox20.BackgroundImage = Resource1.sea;
pictureBox21.BackgroundImage = Resource1.sea;
}
I try your code snippet, too but it didn't work.
private void ResetPictureBoxes()
{
foreach (Control c in this.Controls)
{
PictureBox picture = c as PictureBox;
if (picture != null)
picture.BackgroundImage = Resource1.island;
}
}
|
|
|
|
|
Define 'didn't work'.
Are all your picture boxes children of the same control? If so, you should use 'parentOfPBs.Controls' not 'this.Controls'. If not, you will have to traverse the whole control tree; I suggest you do this once and stash them in a list as it can be quite slow on a big form. You can use a standard recursive tree traversal similar to
public static List<T> GetControlsInTree<T>(Control parent) where T: Control {
List<T> result = new List<T>
AddControlsInTree(parent, result);
return result;
}
static void AddControlsInTree<T>(Control parent, List<T> list) where T: Control {
foreach (Control c in parent.Controls){
T t = c as T;
if (t != null) list.Add(t);
AddControlsInTree(c, list);
}
}
You can stash the list of picture boxes after form initialisation (after you call InitializeComponent in the constructor, for example):
List<PictureBox> pictures = GetControlsInTree<PictureBox>(this);
Then you can iterate over them at will:
private void ResetPictureBoxes()
foreach(PictureBox picture in pictures)
picture.BackgroundImage = Resource1.island;
}
|
|
|
|
|
Thanks
|
|
|
|
|
Anybody have a better date time parse algorithm? I've tried DateTime.TryParse, but it doesn't pick up a lot of conditions. For example 1:05P != 1:05PM because it doesn't know what P is.
|
|
|
|
|
I know it's not C#, but take a look at date.js[^]
It's open source, so if you like what you can do in the sandbox on that page, maybe you could hack it to c#. Or join the project.
Cheers,
Peter
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|