|
Thanks for the reply. Unfortunately, the user/pass prompts aren't embedded in an HTML page - they're in a Windows-style login dialog that pops up when you click the login link. I'm not all that familiar with web development myself, and I don't know how the authentication works. I figured the authentication credentials must be accessible from the client that owns the browser control, but maybe not.
|
|
|
|
|
I have an ArrayList containing data where BOTH identical strings need to be removed.
program files\softsoftware\program\help\help3.htm,9/22/2006 2:22 pm
program files\softsoftware\program\help\help3.htm,9/22/2006 2:22 pm
|
|
|
|
|
If there's not a method to do this, sort them, iterate over them, and delete any that are the same as their neighbour.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
If you're sure there's only one duplicate you could simply call ArrayList.Remove twice.
arrayList1.Remove("program files\softsoftware\program\help\help3.htm,9/22/2006 2:22 pm");
arrayList1.Remove("program files\softsoftware\program\help\help3.htm,9/22/2006 2:22 pm");
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
I have a function that when you move the mouse I need to tell my Panel to draw itself.
Thats fine calling Invalidate();
But when the size of the AutoScroll is larger than the panel. Calling Invalidate() sets the position back to the top.
I need to be able to update the screen ( calling paint ) and keep the same position.
I tried calling AutoScrollPosition after Invalidate but that didn't work.
I know I can keep track of the position manually, but isn't there some sort of function I can call instead of maintaning that?
Thanks,
Nick
--------------------------------------------------------
1 line of code equals many bugs. So don't write any!!
My mad coder blog
|
|
|
|
|
What control is it that you call Invalidate on? If you want to redraw a single control, you shouldn't call Invalidate on the entire form.
---
b { font-weight: normal; }
|
|
|
|
|
then how should I trigger the paint event?
By the way its a panel in which I'm drawing on and no controls exist on it.
thanks,
nick
--------------------------------------------------------
1 line of code equals many bugs. So don't write any!!
My mad coder blog
|
|
|
|
|
Here's my question again, as it seems that you missed it completely...
What control is it that you call Invalidate on?
---
b { font-weight: normal; }
|
|
|
|
|
The Panel
--------------------------------------------------------
1 line of code equals many bugs. So don't write any!!
My mad coder blog
|
|
|
|
|
What element is it that you have put the AutoScroll on, then?
---
b { font-weight: normal; }
|
|
|
|
|
How do you set it on an element? I dont see any property or method to do that.
The only thing that exists is a bitmap and I only want to scroll up and down because its huge.
A background might help.
I am making a map editor(level editor) for gameboy games. The map is 1024x1024 of 8x8 pixel squared. So I created a bitmap thats gigantic and I want to use the scroll bars to go to different parts of the bitmap. Then when I finished I will save the bitmap to a file.
The drag and drop and Invalidate work fine if I haven't scrolled.
But, as soon as I scroll the contents they get all messed up. So I need to refresh them. But, when Refresh or Invalidate is called the paint doesn't keep the position. I tried setting the AutoScrollPosition at the beginning of paint and that didn't work either.
I guess the solution is to override invalidate and hook the scrolling events.
I'm not sure and I don't do much winform devewlopment so I'm not sure.
Thanks for taking the time.
Nick
--------------------------------------------------------
1 line of code equals many bugs. So don't write any!!
My mad coder blog
|
|
|
|
|
Ista wrote: How do you set it on an element? I dont see any property or method to do that.
I see. You are just using this:
Invalidate();
That is the same as:
Me.Invalidate();
In this case "Me" references the form, so you are invalidating the entire form. No wonder that you have problems.
Use the invalidate method on the control that you want redrawn. Example:
MyHugePictureBox.Invalidate();
---
b { font-weight: normal; }
|
|
|
|
|
well actually I am saying
myPanel.Invalidate();
And its just a Panel where I draw the bitmap inside it.
Should I create a scrollable picture box instead?
Nick
--------------------------------------------------------
1 line of code equals many bugs. So don't write any!!
My mad coder blog
|
|
|
|
|
I'm just going to override invalidate and maintain the scroll position myself.
Because Invalidate is bugged anyways. It doesn't maintain scroll position at all.
Thanks for your help
Guffa wrote: I see. You are just using this:
Invalidate();
That is the same as:
Me.Invalidate();
I think I already said I was calling it on the panel in my first statement of the problem. Even if I was calling Me.Invalidate() ( what does me do, isn't that a VB form of this. ) it calls invalidate on the child controls so that would really make a difference.
The problem that this started with was Invalidate is resetting the scroll position by going back up to the top left.
I have tons of drag and drop operations occurring on this bitmap so I need it to stay at the same position. And Invalidate does not work. And the resone why is because it will always reset the scroll position. So I need to override the Invalidate function so that I can do my own Invalidate, shadow the method if you will, then hopefully it will work then. Come to think of it, I should have done this in the first place since no controls exist in the panel.
Thanks for everyones help, but I don't think anyone has experience with complex painting to help me.
Nick
--------------------------------------------------------
1 line of code equals many bugs. So don't write any!!
My mad coder blog
|
|
|
|
|
Ista wrote: Because Invalidate is bugged anyways. It doesn't maintain scroll position at all.
I don't think that it's a bug, but rather by design.
Use one panel for the scrolling, and place the control that you use for drawing on that panel. If you invalidate the control on the panel, the scroll position of the panel is not affected.
Ista wrote: what does me do, isn't that a VB form of this.
Right, my mistake. I mix up the message boards sometime.
Ista wrote:
Thanks for everyones help, but I don't think anyone has experience with complex painting to help me.
Hm...? What is it that is complex about it?
---
b { font-weight: normal; }
|
|
|
|
|
Yeah I guess making a picturebox huge inside it would suffice.
I just didn't want to do that because then I have to move the drag and drop stuff around.
Guffa wrote: Hm...? What is it that is complex about it?
And I could still do it in a panel. And it would be complex, because I need to manage the scroll position and what portion is displayed. Plus everytime the scroll is moved I would need to redraw that also. It doesn't operate like a panel should.
Shoot I even had to modify the Param's of the panel to get the transparency to work correctly. So I would say the panel is bugged on all aspects. It doesn't fire scrolling events correctly, it doesn't internally invalidate areas of the panel like it should. It maybe not be that its bugged, but it's operation is faulty without a doubt. Microsoft does DirectX so they should know better.
Once you Invalidate it always resets the scroll position to 0. In my opinion thats not very well designed. And plus that means if you want to Invalidate then you have to scroll back. SO that way it looks very annoying. Just because I call Invalidate doesn't mean I want to reset that position. I just want to redraw everything inside.
I fail to see the reason for that design. But, I'm just griping so who cares.
And have you noticed that drawing with paint never looks correct. Test it out and scroll. It gets choppy all over the place with tons of copies of your drawing everywhere. Unless they failed to mention that the scrolling object has a method you need to implement to call paint all the time.
But, who cares. Obviously I'm getting way too worked up about this.
Nick
--------------------------------------------------------
1 line of code equals many bugs. So don't write any!!
My mad coder blog
|
|
|
|
|
Ista wrote: I just didn't want to do that because then I have to move the drag and drop stuff around.
Why would you have to move it around?
And it would be complex, because I need to manage the scroll position and what portion is displayed. Plus everytime the scroll is moved I would need to redraw that also.
Why? Isn't the scroll position managed by the object?
If I'm not mistaken, the graphics object that you get in the paint even can tell you what portion is displayed, or rather, what portion you are supposed to draw in the event.
It doesn't fire scrolling events correctly, it doesn't internally invalidate areas of the panel like it should.
And have you noticed that drawing with paint never looks correct. Test it out and scroll. It gets choppy all over the place with tons of copies of your drawing everywhere.
I don't meen this to put you down, but it sounds like you are doing something wrong. Everything in the UI is using the same events as you do, and most of the time it works just fine.
Just because I call Invalidate doesn't mean I want to reset that position. I just want to redraw everything inside.
Then you should invalidate everything inside, not the container.
---
b { font-weight: normal; }
|
|
|
|
|
Hello
Did you try to use Refresh() instead?? It redraws only the client.
Regards
|
|
|
|
|
actually it just calls invalidate()
So that won't work.
--------------------------------------------------------
1 line of code equals many bugs. So don't write any!!
My mad coder blog
|
|
|
|
|
hi all ,
In Report Page , I suppressed on the sepecified field(e.g :"firstname") on Common Tab in Format Object .I checked CheckBox1 in Form1 for showing field("firstname")on the Table . in Form1.cs in btnShow_Click , I wrote this :
...
LoadData();
if(CheckBox1.Checked)
myCrystalReport1.ReportDefinition.Sections[1].ReportObjects["firstname1"].ObjectFormat.EnableSuppress = false;
It works for several times , but Sometimes , I have this Error :
A callback was made on a garbage collected delegate of type 'CrystalDecisions.ReportAppServer.DataSetConversion!CrystalDecisions.ReportAppServer.DataSetConversion.DataSetConverter+CrdbAdoPlusDelegate::Invoke'. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called.
Or with This Error :
<big>Value does not fall within the expected range</big> .
plz help me
Thanks
s_mostafa_h
|
|
|
|
|
Hello!
How do CancelEventHandler s work? I think the delegates get called in a random order. What if the first delegate in the chain sets the Cancel property to true, but the second one resets it to false? Will the caller (i.e. the one who sent the event) get true or false in this case?
Best regards
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
Dominik Reichl wrote: How do CancelEventHandlers work? I think the delegates get called in a random order. What if the first delegate in the chain sets the Cancel property to true, but the second one resets it to false? Will the caller (i.e. the one who sent the event) get true or false in this case?
You are correct Each 'handler' would have to check if the value is already set or not, decide on some policy how you will handling that. Obviously, if someone else attaches to it too, you will have no control.
A better way would be to make your own 'CancelEventArgs', eg:
class CancelEventArgs
{
bool cancel = false;
public bool Cancel
{
get {return cancel;}
set {if (!cancel) cancel = value;}
}
}
This way you can gaurentee, once cancelled, it cant be uncancelled.
|
|
|
|
|
I'll do it like that, thanks!
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
You could also do something like this:
public class TestCancellableEvents
{
public static void Main()
{
TestClass test = new TestClass();
test.MyEvent += new MyDelegate(test_MyEvent);
test.MyEvent += new MyDelegate(test_MyEvent2);
test.doit();
}
void test_MyEvent2(object sender, CancelEventArgs args)
{
}
void test_MyEvent(object sender, CancelEventArgs args)
{
args.Cancel = true;
}
public class CancelEventArgs
{
bool cancel = false;
public bool Cancel
{
get { return cancel; }
set { cancel = value; }
}
}
public delegate void MyDelegate(object sender, CancelEventArgs args);
public class TestClass
{
public event MyDelegate MyEvent;
public void doit()
{
Delegate[] list = MyEvent.GetInvocationList();
CancelEventArgs args = new CancelEventArgs();
foreach (MyDelegate handler in list)
{
handler(this, args);
if (args.Cancel)
{
break;
}
}
}
}
Vitaliy Tsvayer
Tikle
|
|
|
|
|
Vitaliy Tsvayer wrote: Delegate[] list = MyEvent.GetInvocationList();
You sure that doesnt return multicast delegates? Good approach
|
|
|
|