|
first thank u to answer me :
second :I want to print a text I write in C# code (some lines like this eg.
materialName Quantity Price Value
myMAterialName 2 50 100 )
just like this I want to print
third : I have print a test page and the printer work with an embedded program in the WindowsCE.NET5.0 device is called BTPrinter but I can't print the text I want in it.
In other words I want to print the text I want in my program.
thank u again.
|
|
|
|
|
I have a splitcontainer in the form. Initially I want left panel to spread over the whole client area and right panel should go hiding or invisible. When condition is right I want to show the right panel.
I tried by setting the SplitterDistance to the ClientRectangle.Width but left panel does not take the whole width instead give some minimum space (width)to Panel2. It looks like panel2 width can not be set to zero, it always need non zero width.
How can I make panel1 takes the whole space and hide the panel2 initially.
Any idea will be helpful.
Thank you.
|
|
|
|
|
Have you tried:
<br />
panel2.visible = false<br />
Regards
Guy
You always pass failure on the way to success.
|
|
|
|
|
Can anyone give me some pointers/links to formatting text in a RichTextBox please.
I have googled and not found any tutorials - only references to things such as:
txtTips.Rtf = @"{\rtf1\ansi This is in \b bold\b0.}";
Which I can use but I would like to know how to underline, italicise, change font size etc...
I realise there is a good chance that I have been missing the obvious, either in my google searches or msdn searches so thank you for your patience in advance.
Regards
Guy Thiebaut
You always pass failure on the way to success.
|
|
|
|
|
|
Thanks,
That will help.
Regards
Guy
You always pass failure on the way to success.
|
|
|
|
|
|
Thanks,
Guess who did not search within CodeProject
A really useful link within the article is this one Clickety
Regards
Guy
You always pass failure on the way to success.
|
|
|
|
|
I'm looking for something like the old Windows API FlushEvents().
I have a form which creates a COM object like such:
COMServerObject foo = new COMServerObject;
While my code waits for this singular statement to return, Windows makes my form window modal. If it takes a while for this statement to return - up to 20 seconds for .NET to give up and throw an exception - Windows queues up mouse clicks and keyboard events on my form, and then plays them back once the statement returns.
This is nasty, as the user hammers away at my unresponsive window, even trying to close it. So once the statement returns, my window can suddenly fly around the screen, resize, minimize, and even close.
I've tried disabling the Form while while I wait:
...<br />
this.Enabled = false;<br />
COMServerObject foo = new COMServerObject;<br />
this.Enabled = true;<br />
...
And this prevents clicks on my various buttons and menus. However, it does NOT prevent clicks on the window frame or title bar or close controls, so they still get queued up.
How can I prevent these from queuing? In the old Windows API, you could call FlushEvents when you got back from a modal state, which would remove all Windows events from it's message queue. I can't find anything analogous in the .Net framework. Anybody know the proper technique, here?
|
|
|
|
|
JoeRip wrote: Anybody know the proper technique, here?
Yeah, some asynchronous coding methods.
Put the call to your COM object in background thread so the primary thread is free to handle the events.
only two letters away from being an asset
|
|
|
|
|
So, nobody knows any way to flush events, then?
|
|
|
|
|
With a decent design, nobody ever needs to flush events. An app is not supposed
to ignore its user, if it can't or won't respond to some event, it should
disable the event sources to indicate so.
|
|
|
|
|
Luc Pattyn wrote: With a decent design, nobody ever needs to flush events.
This is an overly simplistic statement. Both the Mac OS and Win32 API's support a Flush Events procedure, which is recommended to prevent users from inadvertently losing work or destroying data.
In the professional productivity applications that I was personally involved in shipping, we frequently flushed queued up events when a dialog opened, to prevent a user who was typing in word processor from overwriting original values in the dialog controls without intending to do so.
While you may not agree that the situation I described needs an event flush, your statement that it is never necessary is incorrect.
|
|
|
|
|
Well, if you want your app to suddenly open a dialog, give it focus, and hijack all
on-going user input, then you are on your own I guess. I will try and avoid ever
using such an app, the way I see it the user is in control, not the app.
|
|
|
|
|
How bizarre that you would suggest that I want this. Where are you reading that I want an application to suddenly open a dialog?
Can you not simply admit that your statement was overly simplistic and incorrect?
|
|
|
|
|
Hrmmm I should chuck my 2c in here.
Sometimes (probably due to a less than ideal architecture) you may find a whole bunch of events in your queue. The correct behaviour here is to process the events. You may choose to fast-discard keypresses and clicks - but the decision to flush the queue may cause your application to lose critical information. You could lose network connectivity change notifications, system shutdown notifications...
Particularily if you are intending to have your application run on Vista - which is very very quick to detect applications not pumping their message queue, and very quick to suggest they are hanging and should be closed.
So I don't think it was "overly simplistic and incorrect". It was good advice, on par with "do not call GC.Collect()". Sure - you could think up a scenario where it might be useful - but in 99% of cases you should just do it right.
If you need to flush your message queue then use PInvoke to call the API function. If the framework supports this it will be in the Application or Form class. It probably doesnt, because its bad practice. HTH
|
|
|
|
|
All arguments aside, here's an odd behavior: Application.DoEvents() basically does the flush for me.
If I do this:
myForm.Enabled = false;
COMServerObject foo = new COMServerObject();
Application.DoEvents();
myForm.Enabled = true;
Then the queued clicks on the titlebar/closebox/minimize box, etc, do NOT get received by my app. If I reverse the order of the last two statement (enable the form, then call DoEvents()), then the messages DO get received by my app. Weird.
Noted just for interest. Not advocating this as a method to flush events.
|
|
|
|
|
Hi friends,
I have below salesreport table, how can I get results of max sales of sales persons in one query?
salesperson sales orderId
Michele 120 120121
Guido 230 120122
Michele 300 120123
Michele 250 120124
Franco 100 120125
Guido 500 120126
Franco 400 120127
the query result must be;
salesperson sales
Michele 300
Guido 500
Franco 400
|
|
|
|
|
This is more for the SQL forum methinks.
Also sounds very much like homework.
Anyway here is the solution (try and understand why it works rather than just copying it)
<br />
select salesperson,max(sales)<br />
from salesreport<br />
group by salesperson<br />
Regards
Guy
You always pass failure on the way to success.
modified on Friday, December 28, 2007 4:27:52 PM
|
|
|
|
|
Thanks so much.
You are right. It is a homework but only a part of my homework. I made it simple to apply my question. I am getting query from northwind databasesample. According to sales person's most sold products, I am using group by also and other things. I can't where anad how to put max to below code. The below code gives, all sales of salespersons according to product.
select employees.Firstname,employees.lastname,products.productname,
sum("order details".unitprice*quantity*(1-discount)) as Sales from ((Employees inner join orders on employees.employeeID=orders.employeeID) inner join "order details" on orders.orderID="order details".orderID) inner join products on products.productID="order details".productID
group by employees.lastname,employees.firstname,products.productname
order by employees.firstname
As you see, I don't have any aim to copy your response. I have gotten stuck in a point and I wanted help.
|
|
|
|
|
omegazafer wrote: You are right. It is a homework but only a part of my homework.
I appreciate your honesty in this.
With regards to the query - it's not the simplest of queries you have written - a suggestion: break it into it's component parts and get those parts working first.
omegazafer wrote: ((Employees inner join orders on employees.employeeID=orders.employeeID) inner join "order details" on orders.orderID="order details".orderID) inner join products on products.productID="order details".productID
looks overly complex to me(does it work?).
Regards
Guy
You always pass failure on the way to success.
|
|
|
|
|
Thans so much, your first response helped me so much because I didn't know the using of max with group by.
You can be sure, that code is working also it is the response of one question of my homework.
Now, i am dealing the other question I asked you.
Regards
Good Days
|
|
|
|
|
I want to access folders which are not in Inbox but outside my inbox, like my personal folders using c#.
I am using Outlook Object Library 11.0.
Would appreciate someones help.
|
|
|
|
|
|
Thanks for your help,
I had already visited that and tried below
Outlook._Application olApp = new Outlook.ApplicationClass();
Outlook._NameSpace olNS = olApp.GetNamespace("MAPI");Outlook._Folders oFolders;
oFolders = olNS.Folders;
Outlook.MAPIFolder oPublicFolder = oFolders.Item("Public Folders");
oFolders = oPublicFolder.Folders;
Outlook.MAPIFolder oAllPFolder = oFolders.Item("All Public Folders");
oFolders = oAllPFolder.Folders;
Outlook.MAPIFolder oMyFolder = oFolders.Item("My Public Folder");
Console.Write(oMyFolder.Name);
But it is not working giving an error at oFolders.Item("Public Folders");
|
|
|
|