|
Is there a way to debug an ActiveX control written in VB6 using an exe written in C#???
I know that COM Interop creates some intermediate things that .NET can understand and deal with.
My .NET app uses the control from VB6 and raises an error on exit - so I only can guess that the problem is inside my VB6 control. But how can I debug it???
Vad.
|
|
|
|
|
I could be wrong here, but you could run the control under the debuggers in VS.NET 2002/2003. But, you can't make any changes to the code without recompiling the control with Visual Basic 6. The VB.NET compilers won't work for you in this case because they don't target ActiveX control natively.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Yes, I can run my control under VB.NET but first I would have to convert it into compatible VB.NET code. Such convertion would force me to make many changes to the code because my control is rather complicated and it could happen that the reason of error would eliminate by itself...
Nevertheless, thanx for advise. I will mind if I find nothing more!!! ))
|
|
|
|
|
Hi,
Not sure if this has been commented already, I searched for it, but nothing showed up.
I am having a weird problem: I've been developing an application for 3 months already, but since a couple of days ago, every time I put a new icon in a form, it shows in design mode, but it doesnt show up at run time. This happens even with old W3.1 icons, and on different forms. Icons I was working with normally, refuse to show if I add them again in a different form.
This is driving me mad since I dont have a clue about what could be causing this. Maybe my Visual studio 2003 has gone nuts? Out of memory?
Any help would be GREATLY appreciated
Thanks in advance
|
|
|
|
|
What I would recommend is doing a search over the entire file set to see if the Form.Icon is being set elsewhere. It is easy to forget that old code did something important that is no longer necessary but not interferes.
|
|
|
|
|
Hi everybody,
which control event will be fired before the change of a checkbox or radiobutton happens, and how to say the system not to change ?
Depending on a condition I want to allow or forbit the user to change the status of a checkbox or radiobutton, without setting the control to disable (or to readonly) ?
A dummy.Select()command (jump to another control) doesn't work.
Thank your for your time
Frank
fracalifa
|
|
|
|
|
There is no such event in the System.Windows.Forms.CheckBox or RadioButton classes, but you can extend the classes and raise the event.
Following is the crude (not refined) code. It has transient greying in beetween the check state Changes. Please rectify it if possible.
public class MyCheckBox : System.Windows.Forms.CheckBox
{
bool cancelStateChg = false;
public delegate void BeforeStateChangeEventHandler(object sender, ref bool cancelStateChange);
public BeforeStateChangeEventHandler BeforeStateChange;
protected override void OnClick(EventArgs e)
{
if(this.BeforeStateChange != null)
{
this.BeforeStateChange(this, ref cancelStateChg);
}
if(this.cancelStateChg)
{
this.Checked = !this.Checked;
}
base.OnClick (e);
}
}
|
|
|
|
|
Hi Jay,
it's a pretty good solution.
It works fine and inspires to modify more than one control.
Thanks a lot
Frank
fracalifa
|
|
|
|
|
welcome, actually I wanted to trap BM_SETSTATE window message and do the overriding, but because of the time limitation, I could not do R&D on that. This solution, I had build up just after your post, but waited for others for posting you some better solutions.
Any way, Thanks a lot for using the solution.
Regards,
Jay
|
|
|
|
|
hi,
I am just wondering how can i make Context Menu pop-up.. only if an item is selected in a ListView Control....
any help will be greatly appreciated...
thanx
|
|
|
|
|
this should work:
private void listView1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button==MouseButtons.Right)
{
if (listView1.GetItemAt(e.X,e.Y)!=null)
contextMenu1.Show(listView1,new Point(e.X,e.Y));
}
}
If ur gonna use this feature many times in your code, it may be better to create ur own control inheriting from ListView and override the OnMouseUp method with this same code.
P.D: Dont set ur ListView's ContextMenu property anywhere in ur code or via designer. Keep it Null.
|
|
|
|
|
I have a network application which requires a matrix of boxes. So I decided to take label boxes with borderstyle as fixedsingle. Now each label acts as a box. Upto it is nice. But I need the main player to decide the size of matrix and this size example 8 X 8 matrix is send over the network to the sub player. Now by this size the sub player application has to draw these label boxes on the form. I don't how to do this. It is very urgent for my project.
One more thing, All network operations are implemented in networkoperation.cs and application form class is Form1.cs . I have a reference to Form1 object as myform in networkOperation.cs class.
Please help me in this regard as soon as possible.
|
|
|
|
|
Hello,
I need to know at design time if a Control i created is being resized using the left grip or the right grip (only can be resized horizontally), because i need different behavior for each scenario.
I have a ParentControlDesigner inherited designer for my control (used for setting SelectionRules, and Serialize a few properties to InitializeComponent, etc.)
The only workaround i found to know is to test if the location changes upon resize (though it's pretty dirty, since i need to delay with a sleep the setting of an "old" location)
Could anyone explain what service of the designer i should use and how, to know what grip is used upon mouse resize please ?
Thanks,
Etienne.
|
|
|
|
|
"...Control I created...": I'm assuming u have created your own user control and will add it to your app's forms. In that case:
how about checking where the mouse is when resizing? Overriding the control's OnSizeChanged method you should be able to tell if the mouse is to the right, left top or bottom of ur control.
Unless ur also interested in which way the resizing is going to go (making control bigger or smaller), ur all set.
This code will run in design time same as in runtime so you dont need any special designer service.
|
|
|
|
|
hello,
I inherit the NameObjectCollectionBase for creating custom collection class.
This way i create a collection of my own objects.
My problem occurs when i use the following statment:
"foreach(object person in PersonsCollection) {}"
Instead of getting the objects in person, i get the keys.
This problem preventing me from assigning my collection to datalist because the values i get are the keys (string) and not the their objects that i added to the collection.
what can i do?
Eran
|
|
|
|
|
// this type of thing
foreach( object key in PersonsCollection)
{
Person person = PersonsCollection[key] as Person;
}
Gary
While you're waiting, read the free novel we sent you. It's a Spanish story about a guy named 'Manual.'
- Dilbert
|
|
|
|
|
I have a c# app that communicates with a c++ app. I am trying t send some data to the c++ app using a binarywriter...
// socket is a connected and working Socket
socketStream = new NetworkStream(socket);
socketWriter = new BinaryWriter(socketStream);
...
byte[] bytPrefix = new byte[2];
bytPrefix[0] = 0;
bytPrefix[1] = 0;
byte[] bytLength = System.BitConverter.GetBytes(textWriter.GetStringBuilder().Length);
byte[] bytMessage = System.Text.Encoding.ASCII.GetBytes(textWriter.GetStringBuilder().ToString());
byte[] bytSend = new byte[2+4+textWriter.GetStringBuilder().Length];
bytPrefix.CopyTo(bytSend,0);
bytLength.CopyTo(bytSend,2);
bytMessage.CopyTo(bytSend,6);
socketWriter.Write(bytMessage);
socketWriter.Flush();
...
The c++ app gets a message ok, but it is missing the first 6 bytes. (if I put a break before the Write() bytMessage[0]-[5] are correct
Am I doing something incorrectly?
it seems that any non-text data I put at the beginning of the message is not sent...does the binary writer filter what it sends?
Thank You
|
|
|
|
|
Holy Crow!...what a dope
when I use socketWriter.Write(bytSend);
everything..of course..works correctly...
|
|
|
|
|
i wrote a an apllication with C# and i used crystal report 8.5.
i installed the application on XP and 2000 and NT, i don't have any problem with Reports on XP and 2000. but i do on NT when i run the app on
NT the reports in cyrstal viewer are not up to date i have to click Refresh more than 3 or 4 times to show me the latest data.
**** i created the Reports with ODBC connecting to DBF file ****
Please i need Help ASAP.
thank you
|
|
|
|
|
Hi,
I have a small C# application which prints a few lines on a printer.
I have used System.Drawing.Printing.PrintDocument class and have a PrintPage event wherein I use Graphics.DrawString() to print the text on printer.
The text has two different fonts (Arial and Tahoma).
When I print on HP laser jet printer, the text is printed as expected.
But when I print the same on Minolta Copier/Printer, the text with Arial font becomes Junk. The text in Tahoma has no problem.
Just to isolate the problem, I printed a few lines with Arial font from Microsoft Word on Minolta printer and that is printed properly.
Any idea what is happening wrong hrer ??
Any hint/clue would be of great help.
Thanks
Bhavin
bhavin
|
|
|
|
|
Is this even possible in a C# windows forum.
If i create a transparent image (Like png or gif) or use a transparent icon in a picturebox, there is always a background color.
If i use the same images in a label, the image is transparent as i can see the text beneath it.
regards,
Martijn
|
|
|
|
|
Hello to everyone!
I'm building a schedule-like interface that suppose to show events (represented by rectangles) for users (represented by a row on which the rectangles mentioned earlier would appear). At the top border of this object, there's a timeline that starts from few minutes before the current time and up till the last event. The shown events should respond to zoom-in and zoom-out functions that will affect the timeline resolution (the higher the resolution, the longer a rectangle). These events can be dragged around a certain row (user), expanded or shrunk (duration of the event), and added or removed without limit. The events will be taken from a SQL server later on. For overall reference, think of MS Project's timeline diagram, but without the arrows between the tasks.
So far, I've implemented the rectangle itself using a Label. It can be gragged around, expanded and shrunk on demand using the mouse, and a double-click creates a TextBox on top of the Label, in order to edit the name of the event. When the TextBox looses focus, the text is saved in the Label.
Also, I've implemented the drawing of the background for each line, and the drawing of the timeline. The whole object is implemented on a Panel so that scrolling can be made possible.
My problems are as such:
1) When I scroll horizontally, the timeline nudges, if drawen at all, are smeared on the panel. It seams that the panel is not refreshed correctly. When I call Refresh() on the panel, it doesn't allways do the job.
2) I cannot set the actual size of the view (client) area of the panel with the srcoll bars, unless there's an object in it. For example: I want to set the size of the Panel to 100, but allow the scroll bars to reach 500, but without placing an object in the Panel at that point.
3) Can anyone think of a better way to implement this?! Perhaps, using Visio client in a program?!
HELP HELP HELP!!!
I'm getting really thrustrated implementing all these things with code.
With respect,
SolidRock
|
|
|
|
|
Concerning the scroll thing, i've done similar things in my project.
Instead of using the AutoScroll ability, here's what i did :
* create a Control Inheriting from a Panel.
* add a scroll bar in it and some code to manage the SizeChanged event ( or just dock it on the right )
* add another panel ( which will be your client zone ) inside this first one.
* make it so that when any control except from your scrollbar and inner panel is added to your main control children, they in fact are attached to your inner panel.
then scrolling is just a matter of positionning the inner panel.Top
Inner panel needs to be resized every time a control is added/removed from it.
Every time the inner panel is resized, the ScrollBar maximum value is set.
You need a bit of coding to get it fully functionnal, but it's worth it imo... Autoscroll is barely useful since you can't scroll with code.
This worked great for me. I didn't want to use external API calls to manage my scrolling.
Hope this will help, though i'm not completely sure i understood your problem.
Etienne.
|
|
|
|
|
Hi Gangren!
I did exactly what you told me and it works great!
But I did encounter a problem when the control is resized (i.e. from normal to maximized), the control's Left property holds a negative value!
Why?!
|
|
|
|
|
Hi,
I'm not sure i understand the problem, maybe you could be a little more specific on the steps to reproduce your problem.
Don't forget that the form ClientSize will be brought down to zero when minimizing, so all the docked controls will be resized to have a zero height too. So if you have code in Resize event (or in OnResize method) of your scrolling panel, and you probably do have code there, don't forget to check if a zero height is ok for all the processing you do there.
I've never experienced any issue with the "scrollable panel" control i've made, even when docking it to fill, left, or anything. I just tried checking the "left" property after resizing to Maximized, Normal and Minimized, and it always stays at zero.
If you really want me to help the best would be to post a smaple project reproducing your problem
Etienne.
|
|
|
|