|
I'm doing a program in c# for a pocket-pc that has a "save as" dialog-box. When I execute it in the explorer, It's ok, but when I try to execute it in pocket-pc it doesn't work, in order to show the dialog-box only appears the text of the file. There is someone who can help me?
Thanks!!
This is the code:
private void Command3_Click(object sender, System.EventArgs e)
{
Response.ContentType="text/plain";
Response.AddHeader( "content-disposition","attachment; filename=Testa1.txt");
FileStream sourceFile = new FileStrea(@"C:\Inetpub\wwwroot\FitxIdatziWeb\Testa1.txt", FileMode.Open);
long FileSize;
FileSize = sourceFile.Length;
byte[] getContent = new byte[(int)FileSize];
sourceFile.Read(getContent, 0, (int sourceFile.Length);
sourceFile.Close();
Response.BinaryWrite(getContent);
}
|
|
|
|
|
You might want to change the ContentType to "application/octet-stream", but leave the "content-disposition" header in. Since the browser already knows how to render "text/plain" content, it won't ask you to save it. Changing it to "application/octet-stream" is about as generic as it gets and the browser should treat it as an unknown stream type.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I change the ContentType to "application/octet-stream", but it doesn't work. Maybe I must put Response.Buffer = true ; Response.Clear();and in the end Response.End(); but it doesn't work.
If I put Response.ContentType="text/salt+html"; I get a dialog box and download the file. But when I read the text,it is different, it has html format but anything of the original text. Thanks for the answer and sorry for my low level english.
|
|
|
|
|
I am using these lines, to avoid flicker in my program:
SetStyle(ControlStyles.UserPaint, true);<br />
SetStyle(ControlStyles.DoubleBuffer, true);<br />
SetStyle(ControlStyles.AllPaintingInWmPaint, true);<br />
<br />
private void timer1_Tick(object sender, System.EventArgs e)<br />
{<br />
Invalidate();<br />
}<br />
<br />
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)<br />
{<br />
Graphics g = e.Graphics;<br />
...<br />
}<br />
However, it dont work for panels, only for the main window, if i try like this:
private void timer1_Tick(object sender, System.EventArgs e)<br />
{<br />
panel1.Invalidate();<br />
}<br />
<br />
private void panel1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)<br />
{<br />
Graphics g = e.Graphics;<br />
...<br />
}<br />
It there a simple way to make panels flicker free?
|
|
|
|
|
I wonder where you have written these lines of code:
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.DoubleBuffer, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
If you created your custom panel, so it should work flicker free.
My Weblog
|
|
|
|
|
custom panel?
I just drag a panel from the toolbox.
The lines a placed in the constructor.
|
|
|
|
|
That's why it's not flicker free. You should make a custom panel, which derives from Panel control, and then you just need to add those lines of code in the constructor of your custom panel. After compiling and adding it to your form, it will work flicker free.
This article may help you:
Flicker free drawing using GDI+ and C#[^]
My Weblog
|
|
|
|
|
To note, it's much faster to use
SetStyle(ControlStyles.AllPaintingInWmPaint<br />
| ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true); . This results in fewer calls since all three enumerations are OR'd together at compile time. That's what the FlagsAttribute allows on an enumeration like ControlStyles (all enumerations denoting plurality in the .NET FCL typically have the FlagsAttribute ).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
|
the problem is here:
<br />
string currentPath;<br />
<br />
private void frmPicture_Load(object sender, System.EventArgs e)<br />
{<br />
currentPath = @"D:\Image\1.jpg";<br />
this.pictureBox1.Image = Image.FromFile(currentPath);<br />
}<br />
<br />
private void updateButton_Click(object sender, System.EventArgs e)<br />
{<br />
if (File.Exists(currentPath))<br />
{<br />
string newPath = Application.StartupPath + @"\PatientImages\" + arrISN[index].ToString() + ext;<br />
this.pictureBox1.Image = null;<br />
File.Copy(currentPath, newPath, true);<br />
}<br />
}<br />
Error: the process cannot access the file "D:\.." because it is being used by another process.
what can i do to correct this problem.
thanks.
Rock Throught The Night
|
|
|
|
|
I assume it's the File.Copy line that throws the error?
Out of interest, you've not got the picture your copying open in another application have you?
KP
|
|
|
|
|
i known the error is File.Copy line but i cannot find out the to correct it.
please help me again
thanks
Rock Throught The Night
|
|
|
|
|
I have just tried the code with some adjustments for my file structure and it works fine. The only difference between my code and yours is the newpath string, i set mine to @"c:\golfball2.bmp" and when i clicked the update button i got a copy of golfball.bmp called golfball2.bmp.
I assume the problem is that the destination for your file is currently being used by another application, or even by your application. Try hard coding the newPath string to @"c:\test.jpg" . If that works then you will have to look at where your trying to write the copy to.
Let me know how you get on.
KP
|
|
|
|
|
the " currentPath " and the newPath is the same Folder and the " currentFileName " and "newFileName" is the same too
so the error occur.
Rock Throught The Night
|
|
|
|
|
Either clone (via Clone - don't forget to cast it to an Image ) the Image you get from Image.FromFile , or use a FileStream and specify FileShare.Read at the very least, then read the image from the stream (the Bitmap class - a derivative of Image - accepts a Stream as a parameter).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi ppl.
What sort of naming standards should you use for C#?
Should variable names in the class start with "m_str" for example?
thanks
|
|
|
|
|
This is what microsoft dictates...
Naming Guidelines[^]
I think your sopposed to use pascal case for variables and no little prefix....
/\ |_ E X E GG
|
|
|
|
|
eggie5 wrote:
This is what microsoft dictates
Well, Microsoft don't really dictate it, they are called "guidelines" because you can ignore them if you wish. But, obviously if everyone follows the guidelines it becomes easier to maintain and read the code.
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
Like on Pirates of the Caribbean?
/\ |_ E X E GG
|
|
|
|
|
Kind of...
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
I notice there is no more use of the prefix for the type of the variable anymore. I'm use to using a variable named say "strName" to say the type is a string. Wouldn't the use of just "Name" be a little confusing if you didn't know its type just by looking naming standard for all you know it could be a integer, boolean (hopefully not!)?
|
|
|
|
|
If you are using visual studio or any other ide, you can tell my just leaving your mouse over the variable and it will give you all that info...
/\ |_ E X E GG
|
|
|
|
|
no more notepad then
|
|
|
|
|
Take also a look at this site[^] from MSDN.
It should give you a general overview before studying the previous posted link.
www.troschuetz.de
|
|
|
|
|