|
1. Put a File Upload control on your aspx page
2. When the user submits the page, save the selected file on the server.
3. In the postback code, create an image that points to the file you saved in step 2.
|
|
|
|
|
thank you. but what i write code in submit buttom?
|
|
|
|
|
Hi folks!
I have a Windows CE 5.0 device (Barcodereader with arm cpu) with WiFi.
I use .Net 3.5 on the CE and the PC.
VS2008 is the development environment.
I want to write a small program for CE which will read a barcode and an item count entry and send it to PC where the current (focused) app should receive a string like manual entry with the data.
First idea was remoting
CE does not support it.
Next idea is a WebService which works but I found no way to use SendKeys from within the WebService.
Is anybody out there with a solution or even with a better idea?
-Juergen
|
|
|
|
|
You cannot use SendKeys in a WebService. Services run under a different Desktop than what the user can see at the console.
You're CE app should be talking to a WebService that interacts with a database that your app and the normal app that the desktop is using interact with.
|
|
|
|
|
I have a class, with a method receiving objects and dealing with them accordingly.
But.... when a List object e.g List<MyObjectType> is passed to the method I want to be able to loop through the list and deal with each and every object within the list the same as I would have with a normal object.
How do I:
1. Recognize an object as a List?
2. Enumerate this list?
So far, I was able to recognize the object as being a list by doing the following (this is one for coding horrors):
if (pInputObject.GetType().FullName.Substring(0, 31).Trim() == "System.Collections.Generic.List") <br />
{<br />
.<br />
.<br />
.<br />
}
|
|
|
|
|
don't use strings to check for a specific type, it is expensive and inaccurate as it won't recognize derived types. The correct way is based on the is and as keywords.
Control c;
...
if (c is ListBox) log("c is a ListBox");
Label lbl=c as Label;
if (lbl!=null) log ("c is a label, text="+lbl.Text);
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
I'm not talking about controls, I'm talking about the generic List<T> object.
If I go with a generic class and use the is or as keywords I get stuck here:
if (pInputObject is List<Ti>) {<br />
foreach (Ti listObj in (List<Ti>)pInputObject) {<br />
<br />
}<br />
}
Ti is my class's generic Type.
|
|
|
|
|
an object is an object, a type is a type; whether it is a Control or a List<T> is irrelevant.
Here is proof:
public void Test() {
object obj=new object();
aha<int>.handleList(obj);
aha<double>.handleList(obj);
List<int> ints=new List<int>();
List<double> doubles=new List<double>();
aha<int>.handleList(ints);
aha<double>.handleList(ints);
aha<int>.handleList(doubles);
aha<double>.handleList(doubles);
}
public class aha<T> {
public static void handleList(Object arg) {
if (arg is List<T>) {
log("got List<T> as in "+arg.ToString());
} else {
log("did not get an expected list, got "+arg.ToString());
}
}
}
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
Have two overloads for your method, one that takes a MyObjectType and the other that takes a List<myobjecttype>. In the second method, iterate through the list and call the first method inside the loop. This should be a pretty clean solution.
|
|
|
|
|
Thank you for taking the time to read the actual question!
Before you posted this I conjured up a similar solution as to the one you are suggesting but ran into some trouble.
If I have an object (which is a list), let say (using simple types for argument sake), List<Forest> and I pass it to the overloaded method within a generic class (Type "Forest") as such: myListMethod(List<T> pListObject) .
The mentioned method is supposed to loop through all properties within each Forest and do the same for them, but what do I do if the List Object (List of Forest) has within itself, another List, say, List<TreeSpecie> .
When calling this method with a known List Type it was easy, but now I do not know the type of the object (TreeSpecie) within this list. How do I determine that type?
Regards
|
|
|
|
|
if ( whatever is IEnumerable )
{
// Iterate the items with foreach
}
else
{
// Normal
}
|
|
|
|
|
Hii i am writing a code to make the glass effect on windows form. Well the code works fine on vista but my target is on windows xp. I have copyed all the dll's that are reqired and when i debug i am getting an error "DLL NOT FOUND EXCEPTION UNHANDILED".
Here is the code that i am using:-
-----------------------------------------------------------------------------------------------------------------------------
This is the class where i import dwmapi dll.
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace welcome_page
{
class VistaGlassEffect
{
internal class VistaApi
{
[DllImport("dwmapi.dll")]
internal static extern void DwmExtendFrameIntoClientArea(System.IntPtr hWnd, ref Margins pMargins);
[DllImport("dwmapi.dll")]
internal static extern void DwmIsCompositionEnabled(ref bool isEnabled);
internal struct Margins
{
public int Left, Right, Top, Bottom;
}
// consts for wndproc
internal const int WM_NCHITTEST = 0x84;
internal const int HTCLIENT = 1;
internal const int HTCAPTION = 2;
}
}
}
-----------------------------------------------------------------------------------------------------------------------------
This the form where i call this class "VistaGlassEffect"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX.AudioVideoPlayback;
using System.Diagnostics;
using System.Drawing.Drawing2D;
namespace welcome_page
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
this.FitGlass();
}
Video video;
private welcome_page.VistaGlassEffect.VistaApi.Margins marg;
private Rectangle topRect = Rectangle.Empty;
private Rectangle botRect = Rectangle.Empty;
private Rectangle lefRect = Rectangle.Empty;
private Rectangle rigRect = Rectangle.Empty;
private void FitGlass()
{
// If DWM is not enabled then get out
if (!this.IsGlassEnabled())
{
return;
}
// Set the Margins to their default values
marg.Top = 600; // extend from the top
marg.Left = 400; // not used in this sample but could be
marg.Right = 200; // not used in this sample but could be
marg.Bottom = 860;// not used in this sample but could be
this.Paint += new PaintEventHandler(this.Form1_Paint);
// call the function that gives us glass,
// passing a reference to our inset Margins
welcome_page.VistaGlassEffect.VistaApi.DwmExtendFrameIntoClientArea(this.Handle, ref marg);
}
private void apply()
{
this.Paint -= new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
this.RecreateHandle(); //needed if changing on the fly
this.FitGlass();
}
private bool IsGlassEnabled()
{
//if (Environment.OSVersion.Version.Major < 6)
//{
// Debug.WriteLine("How about trying this on Vista?");
// return false;
//}
//Check if DWM is enabled
bool isGlassSupported = false;
------welcome_page.VistaGlassEffect.VistaApi.DwmIsCompositionEnabled(ref isGlassSupported);---Here Error OCCURS.
return isGlassSupported;
}
// Alpha-blending Paint after the glass extension
// this seems better than the winforms transparency approach because here we can click on the glass!
private void Form1_Paint(object sender, PaintEventArgs e)
{
// black brush for Alpha transparency
SolidBrush blackBrush = new SolidBrush(Color.Black);
Graphics g = e.Graphics;
if (this.IsGlassEnabled())
{
// setup the rectangles
topRect = new Rectangle(0, 0, this.ClientSize.Width, marg.Top);
lefRect = new Rectangle(0, 0, marg.Left, this.ClientSize.Height);
rigRect = new Rectangle(this.ClientSize.Width - marg.Right, 0, marg.Right, this.ClientSize.Height);
botRect = new Rectangle(0, this.ClientSize.Height - marg.Bottom, this.ClientSize.Width, marg.Bottom);
// Fill Rectangles
g.FillRectangle(blackBrush, topRect);
g.FillRectangle(blackBrush, lefRect);
g.FillRectangle(blackBrush, rigRect);
g.FillRectangle(blackBrush, botRect);
}
blackBrush.Dispose();
}
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == welcome_page.VistaGlassEffect.VistaApi.WM_NCHITTEST // if this is a click
&& m.Result.ToInt32() == welcome_page.VistaGlassEffect.VistaApi.HTCLIENT // ...and it is on the client
&& this.IsOnGlass(m.LParam.ToInt32())) // ...and specifically in the glass area
{
m.Result = new IntPtr(welcome_page.VistaGlassEffect.VistaApi.HTCAPTION); // lie and say they clicked on the title bar
}
}
private bool IsOnGlass(int lParam)
{
// sanity check
if (!this.IsGlassEnabled())
{
return false;
}
// get screen coordinates
int x = (lParam << 16) >> 16; // lo order word
int y = lParam >> 16; // hi order word
// translate screen coordinates to client area
Point p = this.PointToClient(new Point(x, y));
// work out if point clicked is on glass
if (topRect.Contains(p) || lefRect.Contains(p) || rigRect.Contains(p) || botRect.Contains(p))
{
return true;
}
return false;
}
void buttn()
{
}
private void Form2_Load(object sender, EventArgs e)
{
int width = panel1.Width;
int height = panel1.Height;
System.Uri u = new Uri(@"F:\Documents\Viswa Teja\Documents\C2\teja.avi");
video = Video.FromUrl(u);
video.Owner = panel1;
video.Play();
panel1.Size = new Size(width, height);
//this.apply();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
-----------------------------------------------------------------------------------------------------------------------------
Please kindly help me.
|
|
|
|
|
Is it possible that your Vista is a 64 bit version?
You can't mix 64 bit apps with 32 bit dlls.
[edit] I should learn to read ....... just ignore this post
Greetings
Covean
modified on Wednesday, November 4, 2009 8:41 AM
|
|
|
|
|
You asked this question here[^] and were told you couldn't do this using dwmapi.dll.
This is a Vista+ only DLL, and copying it onto XP doesn't mean it'll work on XP. If your logic held true, then I'd only need to get a Ferrari keyring to convert my car into one. Bottom line - you can't do this with dwmapi, find another way and stop bumping posts.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
Viswa Teja wrote: works fine on vista but my target is on windows xp. I have copyed all the dll's that are reqired
This will not work. You cannot copy those .DLL's from a Vista system and expect them to work on XP. The rendering system work quite a bit differently.
As for the error that you're getting, what you didn't take into account is that the .DLL's you copied are depending on other .DLL's themselves which you haven't copied and that cannot be loaded because of other problems, not the least of which is you're trying to run Vista .DLL's on an XP system.
|
|
|
|
|
Hello to all, now I expose my problem:
I'm developing a program with Visual C# express to calculate the ratio of my radio-controlled model!
How do I enter the following input data:
Number of teeth of spur gear (int), internal ratio (float), and ratio that you want to get (float).
I need as output the number of teeth of the pinion to use. The pinion is obtained with the following formula:
Pinion = (Spur Gear * Ratio) / Internal Ratio
My problem is that I don' t know how to operate the data conversions, because obviously I can' t write:
Int SpurGear = textbox1.Text;
Float Ratio = textbox2.Text;
Float InternalRatio= textbox3.Text;
Float Pinion = (SpurGear * Ratio) / InternalRatio;
label1.text= Pinion;
Etc Etc
Someone can help me?
|
|
|
|
|
Try:
Int SpurGear = int.Parse(textbox1.Text);
Float Ratio = Float.Parse(textbox2.Text);
Float InternalRatio= Float.Parse(textbox3.Text);
Float Pinion = ((Float) SpurGear * Ratio) / InternalRatio;
label1.text= Pinion.ToString();
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
Ok thank you very much, now I try it!
|
|
|
|
|
Most of the value types have Parse method for data conversion. Don't forget to have a look at TryParse methods too
|
|
|
|
|
Hi,
a TextBox contains text, so Text returns a string, not a number.
converting strings to some numeric type is called parsing, use the Parse or TryParse method of the target type, e.g. double.TryParse(...) , see documentation.
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
Hello there I am hoping that someone might be able to help me optimize my code for an XNA Program I have made, basically I have made my own custom interface in XNA, now my interface works pretty similar to the ways that windows does, however if you nest too many controls inside each other, then the game really starts to run at a slow rate (fps wise), as it obviously the draw method for the controls are taking too long.
I have tried doing a background draw (using an event via BeginInvoke and EndInvoke), but I get lots of flashing and sometimes it even crashes, as it tries to access the Sprite Batch sometimes when it is still is use
Is there another way to optimize my code that will allow me to get my performance back again??
Here is a sample of the draw code for a container object:
if (m_pTexture != null)
{
graphicsManager.Begin();
if (bSetupClientArea)
graphicsManager.SetupClientRect(TranslatedArea);
if (Image_States == 0 || Image_States == 1)
graphicsManager.Draw(m_pTexture, TranslatedArea, new Color(255, 255, 255, (byte)Alpha));
else
{
int nSubHeight = m_pTexture.Height / Image_States;
Rectangle src = new Rectangle(0, (int)Current_State * nSubHeight, m_pTexture.Width, nSubHeight);
graphicsManager.Draw(m_pTexture, TranslatedArea, src, new Color(255, 255, 255, (byte)Alpha));
}
graphicsManager.End();
DrawBorder(graphicsManager);
}
for (int i = 0; i < m_pComponents.Count; ++i)
{
Component component = m_pComponents[i];
if (component.Visible)
component.Draw(gameTime, graphicsManager, true);
}
As you can see each container has its own Rectangular Area, and it will basically use the graphics manager (which contains the sprite batch object for my XNA Program) to setup it's clip area and draw all of the contents to it, of course using this method means every container has to use begin and end from the graphics manager, to make sure that the objects are drawn correctly
Does calling the SpriteBatch.Begin and End function numerous times cause it to slow down considerably??
Or do you think something else is causing it to slow down??
|
|
|
|
|
jdneul wrote: Does calling the SpriteBatch.Begin and End function numerous times cause it to slow down considerably?
Yes, don't do that. SpriteBatch is a batch for a reason, graphics calls and especially context changes are slow, so it tries to accumulate as many as possible to do many of them at once.
Sometimes it may be required to restart your batch, but I've found that can get quite slow if you do it often.
|
|
|
|
|
i am using the GraphicsDevice.ScissorRectangle to clip all controls, is there another way (code wise) to do this that does not require havin a call to the spritbatch Begin and End just to make sure controls are drawn correctly??
|
|
|
|
|
So you have to clip every control to an other rectangle?
|
|
|
|
|
i can get away with normal controls, because they use textures, you can easily alter the destination and the src to affect the overall look of the interface, but the label controls have strings which are drawn to them and i don't know no easy way to manipulate the DrawSting so that it only draws the correct part of the string depending on it's location in the parent
|
|
|
|
|