|
Heres the thing, if I change the output type to console it does work
The problem with doing this is that if the app is launch in GUI mode, I get a rather ugly (and unnecessary) console window sat behind the windows form
post.mode = postmodes.signature;
SELECT everything FROM everywhere WHERE something = something_else;
> 1 Row Returned
> 42
|
|
|
|
|
MrEyes wrote: I get a rather ugly (and unnecessary) console window sat behind the windows form
Where would you expect the console output to appear then?
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
MrEyes wrote: I get a rather ugly (and unnecessary) console window sat behind the windows form
I'm afraid you're stuck. My guess is Windows shows the console window depending on the type of the application (console/GUI), so either get a console window or none at all. I don't know if you can selectively writing to the console depending on command line parameters.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Using Visual Studio C#
I am creating an instant messanger for LAN purposes only.
I would like to have multiple forms(windows) open at once for mulitple conversations with
different users.
But when i try an open one form using the form.showDialog() method it opens but it stops all execution until the form is closed. There for it wont let me open another form if a new connection comes in.
I have an additioal thread setup just to listen for new connections...execution stops here too!!!
Then i try and use form.Show() method and the forms loads to a blank screen and when i mouse over the form i get the hour glass symbol.
Must i use Multiple Document Interface to accomplish this or will i run into the same problems.
I also dont want the forms confined inside of a parent form....
This has to be possible didnt know it could be this difficult
Thanks in advance
Kouvoisier
"13 Thieves of the Diamond" SPR 2K2 A.K.A. NASTY NUPES
|
|
|
|
|
When you use Show, because the parent dialog doesn't stop and wait, the method that calls Show will continue to execute. As a result, you need to make the form you're going to show a member variable ( or if you want to create them dynamically, have a collection to hold them in as you create them ), so that a reference exists and the form is not garbage collected.
kourvoisier wrote: and the forms loads to a blank screen and when i mouse over the form i get the hour glass symbol.
That's weird, there's a problem in your code causing this.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Thanks for the response.
I am confused....
Christian Graus wrote: because the parent dialog doesn't stop and wait
Parent dialog... could you elaborate what exactly you mean when you say parent dialog.
Christian Graus wrote: you need to make the form you're going to show a member variable
I need to make the form im showing a member variable of the class that this is being created in?
is this what you mean?
Christian Graus wrote: so that a reference exists and the form is not garbage collected.
I did create refrences i beleive.
ex. form1 derived from form class
form1 myform = new form1();
myform.Show()
- is myform the actual reference or just an instance of the form1 class
i may have my vocab wrong help me out on that if im wrong
-gives me blank form with hour glass icon when mouse over
hope all makes since
Kourvoisier
|
|
|
|
|
kourvoisier wrote: could you elaborate what exactly you mean when you say parent dialog.
The class instance which is calling Show on an instance of another form.
kourvoisier wrote: is this what you mean?
Yes
kourvoisier wrote: form1 myform = new form1();
myform.Show()
Exactly what I'm talking about. Show does not stop execution. myForm is a local variable, so it will immediately go out of scope and be garbage collected. It needs to be a member variable.
kourvoisier wrote: is myform the actual reference or just an instance of the form1 class
It's a reference with a very short lifespan
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Ok
This is my basic setup in
class1.cs
public class1
{
Form1[] myForms; //member variable array of Forms
public class1() //class1 constructor
{
myForms = new Form1[50];
myForms[0] = new Form1();
}
class2.cs
public class2
{
static void Main()
{
class1 myClass = new class1();
myClass.myForms[0].Show();
}
}
Ok after i run that code i still get form loaded blank and hour glass when mouse over
I added the form as a member variable What else must i do? or what im a doing wrong.
I just want multiple forms thats all...
Run the code above you try it..... Help me out please
Thanks again Christian Graus
Kourvoisier
-- modified at 22:55 Tuesday 8th November, 2005
|
|
|
|
|
kourvoisier wrote: class1 myClass = new class1();
myClass.myForms[0].Show();
You have the same problem. class1 is not a member variable. Why have you done it this way, with an extra class ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Ok....
Actually it is setup this way anyway
public class1
{
Form1[] myForms; //member variable array of Forms
public class1() //class1 constructor
{
myForms = new Form1[50];
myForms[0] = new Form1();
static void Main()
{
class1 myClass = new class1();
myClass.myForms[0].Show();
}
}
Still get blank form with hour glass
Am i doing something wrong
Kourvoisier
|
|
|
|
|
class Main : Form
{
private Form1 myForm;
Main()
{
myForm = new Form1();
myForm.Show();
}
}
Now when main us constructed, a member variable is initialised and shown.
kourvoisier wrote: Am i doing something wrong
I reiterate: your instance of class1 is local to a method, which means it has no persistent lifespan. You have a collection of forms as a member variable inside a class, but you've not made the instance of that class a member.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Sorry sir
but your code above also gives the same exact blank screen with hour glass mouse over
maybe u should compile and run and see what i mean.
Christian Graus wrote:
class Main : Form
{
private Form1 myForm;
Main()
{
myForm = new Form1();
myForm.Show();
}
}
Now when main us constructed, a member variable is initialised and shown.
I really am trying to understand your concept and whats going on.
here you have created a class called main which implements form -- (dont know why it implements form)
You then create a member variable 'myForm' in the main class which is an instance of the Form1 class which is not shown(this class is the actual form i assume because this is what i meant in my code in earlier post)
Then u created the main class constructor which initializes myForm member variable then u call the
show method which should run the form.
Christian Graus wrote: Now when main us constructed, a member variable is initialised and shown.
Now where would you call the constructor for the main class to initialize and show the form which is the member variable.
Christian Graus wrote: I reiterate: your instance of class1 is local to a method, which means it has no persistent lifespan. You have a collection of forms as a member variable inside a class, but you've not made the instance of that class a member.
How do i make the instance of the class a member...i get confused here
(could you send me a visual c# solution source code to show me exactly how u do this
maybe if see the code of all this your saying in action i may be able to understand it better)
if you do this i would highly appreciate it
you can zip it and email to for_now_us@yahoo.com
|
|
|
|
|
kourvoisier wrote: but your code above also gives the same exact blank screen with hour glass mouse over
Yes, I always said that while your code was plain wrong, it was also true that the result I'd expect would not be the hour glass you're seeing.
kourvoisier wrote: I really am trying to understand your concept and whats going on.
here you have created a class called main which implements form -- (dont know why it implements form)
Here's the core issue. As someone else said, you need a message pump. The first step is to create a windows forms app, and then when you've got your main form class, you can create other forms off it, because you have a message pump going already.
kourvoisier wrote: How do i make the instance of the class a member...i get confused here
It's a member if it's declared in the class and not in the method, as in my examples.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
kourvoisier wrote: static void Main()
{
class1 myClass = new class1();
myClass.myForms[0].Show();
}
That is what is creating the problem. For a Windows application to run properly, it needs a message pump to process messages from the operating system. For the .NET API, Application.Run[^] does the message looping. In your program, you don't have a message loop and that is what is causing the problem. This code will help you get rid of the problem.
class1 myClass = new class1();
myClass.myForms[0].Show();
Application.Run();
However, it now becomes your responsibility to handle termination of the application. Application.Run will continue processing messages even if you've closed all the forms. Ideally, you'd have one main form, and from within that, launch other forms
static void Main()
{
Application.Run(new MyMainForm());
}
class MyMainForm()
{
private void MyMainForm_Load()
{
myClass.myForms[0].Show();
}
}
This way, when MyMainForm is closed, the application shuts down cleanly.
Either way, remember that all the forms share the same message loop, so if one of them is busy processing something, all the other forms will also appear to be hung.
To learn more about message pumps, you might want to read this[^] article.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
now i get it.....
thanks for the explanation makes perfect since to me....
especially the article...well put.
I will revise and run my code again i will let you guys know the results
You all have been of great help!!!!
Kourvoisier
|
|
|
|
|
My problem is solved i just needed a Application.run method there
so it can handle the form request(the looping message queue)
Awesome!!!!
im good to go
thanks Alot!!!
|
|
|
|
|
Hi do you know if exists any tools to automatically change Java code in C# code?
|
|
|
|
|
Please Help
I want my program be started up with windows.
and user must log in it first before working with any other program
|
|
|
|
|
You should be patient and wait for a reply before posting the same question over and over. Thats generally considered rude, and is generally bad netiquett.
You should be able to set your windows form to on-top in its properties in the VS.NET designer. You should also be able to set it to be maximized by default, too.
There isnt any way to prevent a user from ALT-TABbing to another app, though, at least as far as I know. The only thing I know of in windows that prevents someone from using apps or alt-tabbing is the main windows login screen. You might be able to hook into the alt-tabbing process and override it until someone logs in, but you would have to make sure you alert the users of your product that your doing so (leagally, otherwise your app could be considered spyware or a hyjacking program).
|
|
|
|
|
I want to make my program in the top ,full screen.
and user must log in it,
(i.e ,No "alt+tab")
|
|
|
|
|
shdelpiero wrote: in the top
this.TopMost = true;
shdelpiero wrote: full screen.
this.WindowState = FormWindowState.Maximized;
"The Soapbox has been so ..."
|
|
|
|
|
What i am trying to do. When a user mouse clicks on a label control, label changes color. If user continues to holds down mouse button and moves over other labels (a click and drag), those labels will change to same color.
How does one detect when the mouse cursor is leaving and entering label controls during a click and drag scenario? I have tried MouseEnter/MouseLeave and DragEnter/DragLeave and the events do not fire when one clicks and drag.
Any suggestions what i should be looking at? I am stumped.
Thanks.
|
|
|
|
|
You will need to do a couple things. First, you will need to set .AllowDrop on each label to true, so that they can accept a drop. By default, most controls ignore drops.
Second, you will need to capture the drag action on the source label (the one being dragged) by calling .DoDragDrop (from Control.DoDragDrop), and writing event handlers for DragOver, DragEnter, DragLeave, DragDrop events for each label to accept a drop and respond to it.
|
|
|
|
|
Thanks Jon. I was able to figure out drag-and-drop from your hints. I found that drag-and-drop is not giving me the right solution as i had thought. I am going to repost question with a different focus. Thanks for the help.
|
|
|
|
|
OK, I have created an AddIN for MS Word, which takes the content of the document, and saves it to a variable...
Microsoft.Office.Interop.Word.Application my_app = (Microsoft.Office.Interop.Word.Application) applicationObject;
Microsoft.Office.Interop.Word.Document my_doc = my_app.ActiveDocument;
my_doc.Select();
my_app.Selection.Copy();
string myText = my_app.Selection.Text;
(the above code works great)
I tried using the Navigate() to send the data to our web application, but I am unable to retrieve it when the Webpage opens:
string strPostData = "SomeData=" + myText;
object strPostHeader = "content-Type:application/x-www-form-urlencode";
string strLocation = "http://mysite.devsite.com/zTest.cfm";
object strTarget = "_BLANK";
System.Object null_obj = 0;
byte[] results;
results = UnicodeToAscii(strPostData);
SHDocVw.InternetExplorer webPost = new SHDocVw.InternetExplorer();
webPost.Navigate(strLocation, ref null_obj, ref strTarget, ref results, ref strPostHeader);
****This is the conversion method*****
public byte[] UnicodeToAscii(string src)
{
int len = src.Length;
byte[] result = new Byte[len + 1];
for (int i = 0; i < len; i++)
result[i] = Convert.ToByte(src[i]);
result[len] = 0;
return result;
}
I keep getting "Argument 4:cannot convert 'ref byte[]' to 'ref object'"
and if I just cast strPostData to an object, the Webpage loads, but nothing is passed in...
Confused? Yes!
|
|
|
|