|
But are we realy talking about the same thing?
again: i have got the litview to work with my ownBalloon tip in a simple form, by using the listview event MousMove. in this case i got the listwiev and my own ballon tip(picture box) in same project(form).
Now i want to make a control of the listview, and then i cant have my own Balloon tip in the sam control. This balloontip will be visible in other parts of the form not near the listview, thats way.
when i copy the listView and the code to a control and then make the dll file and then inports it to my project there i got my own made Balloon tip. at this point i need somthing forwarding the listViews MouseMove to the controler, so i can fetch info for the ballon tip in the form.
I thought that i could just use the controlers(with the listview inside) MouseMove and on every Mouse move in this controler get the right item from the listview.
But the MouseMove on the control dont work as the listView MouseMove did.
The ListView MouseMove event was thrown every time the mouse moved with in the listview(thing its the case for every Windowsform control(buttons,picturebox and so on). But the controler is not working this way, its only throwing the MouseMove event when the mose is exiting or entering objects(Buttons,listView ans so on) from the right. Why is it not throwing the MouseMove event for every Mouse move over the controler the way the listView do?
The information that the mouse is hovering abouv is no problem to fetch, the problem is to get the controler to throw MouseMove event every time the mouse is moving abov the control.
I thougt that it would work if i did this:
Creat the funktion to MouseMove for thw listView in the controler.
The in this MouseMove throw a event to the controls MouseMove.
And then i hopt that i just could creat the controls MouseMove(in my project/form not in the control) and that this event would be thrown every time the mouse is moving over the listView in the control.
hope you got my problem better now?
//Jimmy
|
|
|
|
|
I know what your problem is, and I'm saying that you're solving it the wrong way. There is already support for tooltips in the List View common control - even if you don't use the system's provided tool tips (like you seem to be using a balloon tool tip). The idea is to draw upon this behavior rather than trying to hack a solution.
If you really want to use the mouse move events, read about the List View common control at http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/listview/reflist.asp[^]. If .NET isn't raising the MouseMove event for the list client area, you're going to have to make it do so.
Frankly, though, I don't even know why you're not getting MouseMove events when in the ListView . I ran the code successfully below with no problems:
using System;
using System.Windows.Forms;
public class Test : Form
{
static void Main()
{
Application.Run(new Test());
}
public Test()
{
ListView view = new ListView();
this.SuspendLayout();
this.Controls.Add(view);
view.Dock = DockStyle.Fill;
view.MouseMove += new MouseEventHandler(view_MouseMove);
this.Text = "Test";
this.ResumeLayout();
}
private void view_MouseMove(object sender, MouseEventArgs e)
{
Console.WriteLine("{0}, {1}", e.X, e.Y);
}
} I got coordinates the entire time.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
There are some similar examples here on CodeProject. Just search for keywords like "ListView". You can also try googling. It's all a matter of research.
The thing that you'll really need MSDN for - and to make finding message IDs easier, download the core Platform SDK from there - is to find information about Windows messages and those specific to the common controls. Familiarity and experience with Win32 programming will definitely help.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hey!
Thanks for al you help.
I have now manage to fix this problem, but not the way you explained.
This was done: I created a event(lookt in the MSDN how to do) in the controller that reacted on MouseMove over the ListView, and this works fine. A saml problem was that the mouse point wasent sent in the event(didnt know how to do that) so i med a GET funktion instead.
I most say that i realy fill lika a newbie when i read your solutions, thay are not easy to understand.
Best Regards
Jimmy
|
|
|
|
|
First, there is no "controller". I'm guessing you mean "control". The MouseMove event must be handled. Are you saying this entire time that you were NOT actually handling the MouseMove event? I thought you said it wasn't be fired when you moved the mouse from within the ListView ? I'm sorry, but I just don't understand what you're even having problems with.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
hehe..
I Created a "Windows Control Library" in this i created a listView(User List), let us call this "Windows Control Library" by the name "UserControl".
I Created a Windows Application with a form, i added the new control(UserControl) in to the form. Now i wanted the control to respond on any MousMove over the control.
so i created the MouseMove on the control in the form, but it wount react when i was moving over the listview
in the controler, it only reacted when the mouse was moving outside the listView in the UserControl.
So i hade to creat an event in side the UserControl that reacts to MouseMove on the listView.
And then i added the UserControl to my form again and now i could jus my own made event that rects when the mose is Moving over the list View in the UserControl.
Maby i dident make my problem clear enouth, sorry for that
Best Regards
Jimmy
|
|
|
|
|
How do I put this "( ) - " in a textBox lol.....
------------------
I'm naked under my clothes...
|
|
|
|
|
textBox.Text = "( ) - ";
Is that what you mean?
Happy Programming!
WWW::CodeProject::BNEACETP
|
|
|
|
|
It must have been a really long day!
I'm not sure what you are doing, but you have the answer in your question to some degree! A bit harder question would be how to put a "\" in a textbox!
To apply your question to a possible development problem let's display numbers which will be contained in parenthesis and a "-" if the number is negative.
private void SetNumber(TextBox displayArea, decimal balance)
{
displayArea.Text =
balance >= 0 ? balance.ToString() : string.Format("( {0} )-", balance.ToString());
}
_____________________________________________
tagline under construction!
|
|
|
|
|
I have a Windows Form system which has been in development for about a year. In the VS 2000 platform we incorporated a number of System.Diagnostic.Trace.WriteLineIf statements to trace behavior between the client and the remote communication library it connects with. In the production environment then, one can run the app with the /Debug switch fed into it and we can see what is occuring and which model it bombed on.
All worked great and it was becoming a quick selling point to the developers since this tool would become used by both them and the business analysts.
Now comes VS 2003 and a few weeks ago I got my new laptop and my new install of VS 2003. Woohoo. But when I ran into a situation, and wanted to debug it, the dbgView viewer sat quietly.
We ran a very simple test just a few minutes ago:
I constructed a C# console app.
I have my Main issue a Console.Write, a Trace.WriteLine, and a Debug.WriteLine. Only the Console.Write appeared anywhere!!!
Finally....we created a direct hook into the debug writer with DllImport and added that to the list of outputs. Voila, the raw debug writer created the message without problems.
am I going crazy or is there a 1.1 bug that wasn't there in 1.0???
The application test:
using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace Bomb
{
class Class1
{
[DllImport("Kernel32.dll")]
static extern void OutputDebugString(string msg);
[STAThread]
static void Main(string[] args)
{
Console.Out.Write("This is a test");
Trace.WriteLine("This is a test");
Debug.WriteLine("This is a test");
OutputDebugString("This is a freekin test");
Console.Read();
}
}
}
_____________________________________________
Of all the senses I could possibly lose, ..oh the hell with it! This problem is making me loose my sanity.
|
|
|
|
|
This has to do with TraceListener implementations. The DefaultTraceListener is added to Debug.Listeners and Trace.Listeners by default. VS.NET's Output window will show these messages using the DefaultTraceListener , but the Console won't (and never did, unless you had your console set up as a debugging output device for the OutputDebugString API). I'm sure you knew this, but I include it for posterity (since this is a community forum).
Are you running this test application in VS.NET 2003 or in a new instance of the command shell?
Finally, make sure your application actually adds that TraceListener implementation. Perhaps when you recompiled / ported your code to .NET 1.1 some things got misplaced / forgotten?
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Heath,
Heath Stewart wrote:
I'm sure you knew this, but I include it for posterity
Yeh...the Console.Write was just to flag we were entering the code that would generate the trace messages.
After doing more testing we discovered that it is a change in how VS implements the TraceListeners. In VS 2000 -- your trace messages went to the Output window -- but apparently it was also acted as a pass-thru so that such debugging windows as DBGView would see the messages as well.
In VS 2003 the TraceListener deployment traps the trace messages and limits them to only the VS window. As a result, when I look at the viewer window I see no trace messages. However, when I run the executable outside of VS2003 and run DBGView, I see all of my trace messages as expected. (I'm not in the habit of staring at my VS Output window!)
This behaviour was a bit disconcerting since DbgView was the main debugging tool we were using to see debug trace messages coming from our remote component library.
A departure from the normal behaviour, often causes a developer to wonder if this is a bug instead of a feature.
_____________________________________________
Of all the senses I could possibly lose, It is most often the one called 'common' that gets lost the most.
|
|
|
|
|
Actually, I think you mean VS 2002.
Anyway, I looked at the IL for the System.dll assembly and see that the v1.1.4322 of the DefaultTraceListener still uses the OutputDebugString API. I'd be willing to guess that installing VS.NET 2003 somehow screwed up some settings that register DbgView as a valid debugger in Windows.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi,
is there any simple way to set a CPropertySheet's background color? for example to black or anything?
and the other q is how can you do the same with the CTabCtrl?
thx in forward...
|
|
|
|
|
Wrong forum. Try the Visual C++ forum. This is the C# forum - a language targing the CLR, part of the .NET Framework.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi
I am working on building a C# library where I need to read an image (a JPEG disk file) into a string for further manipulation.
The image has been read into the variables as long as I read it into either byte[] or char[]. But When convert the byte[] or char[] into a string ( by appending each byte or char) I have found that most of the non printable characters are converted to some junk.
Can anyone has a solution on reading an Image (binary data) into a string and retain its original data intact.
thanks
AliIMCIn
|
|
|
|
|
You can encode your bytes as Base64. I'm not sure if .net framework has the ability to do that, but you can easily do that.
Here is an article that describes it: http://www.kbcafe.com/articles/HowTo.Base64.pdf
|
|
|
|
|
.net has base64 encoding:
byte[] data = ...;
string jpgData = Convert.ToBase64String(data);
to convert back to bytes
byte[] data = Convert.FromBase64String(jpgData);
|
|
|
|
|
You can also use the ToBase64Transform and FromBase64Transform , which are a little more stream-friendly. These can be found in the System.Security.Cryptography namespace. The Convert class is okay when you're dealing with small buffers, but potentially large buffers like would be required for images you'd want buffer when possible. For instance, when sending data like this across the wire, you could buffer the bytes to a NetworkStream , transforming the byte[] array to base64 and sending that across the wire (also see Encoding to send this transformed byte[] buffer in the encoding of your choice, like UTF-8 for "application/x-www-form-urlencoded" MIME for an HTTP POST).
See the FromBase64Transform constructor in the .NET Framework SDK for an example.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
See if this is what you want:
System.IO.FileStream stream = new System.IO.FileStream("Image.bmp", System.IO.FileMode.Open, System.IO.FileAccess.Read);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
stream.Close();
string str;
for(int i=0;i<stream.Length;i++)
str += buffer[i].ToString()+" ";
Mazy
You're face to face,
With the man who sold the world - David Bowie
|
|
|
|
|
No, use base64 encoding. See the replies above. Coming up with your own encodings will kill you in the end because nothing else will understand your encoding so it can't decode it. Besides, this will create unnecessary string parsing (you'll have to parse each space-separate integer and convert that to a byte before you can even create your buffer, not to mention that it'll take an extra parsing process to even figure out how big the buffer should be).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Ok.
Mazy
You're face to face,
With the man who sold the world - David Bowie
|
|
|
|
|
Hi
Can any1 tell me how I can print "UnPrintable" ASCII characters in a Textbox ???
raheel
|
|
|
|
|
If they aren't "printable", then they'll be displayed as square boxes (typically). Either way, you must escape the characters. For the Unicode character set (which .NET uses internally for strings), you can use "\uXXXX" - where each "X" represents a hexidecimal value - with the Unicode character (which could be in the ASCII range, such as "\u000a" for the line feed (decimal value 10). You can also use "\xX" - where "X" is a variable number of hexidecimal values - like "\x0a" (decimal value 10), which is also the line feed. Depending on other properties in your TextBox , these might in fact insert line feeds and tabs.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
hi,
i want to append a tsruct every x seconds to a binary file, but i don't get it.
here is the code of the struct:
<br />
public struct abc<br />
{<br />
public DateTime abcDate;<br />
public float abcFloat;<br />
}<br />
how can i append this struct to a binary file?
Thanks,
Dennis
|
|
|
|