|
conversion methods will throw a FormatException when the input string isn't in the right format, which includes the case where the input is empty. e.g. you may get that while your Form gets loaded. It is often solved easily by including a non-zero-length test in your code.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Luc,
I think you are right !!!
I fixt it with the code below:
private void txtBrand_SelectedIndexChanged(object sender, EventArgs e)
{
if (txtBrand.SelectedValue is DataRowView)
{
string BrandID = Convert.ToInt32(((DataRowView)txtBrand.SelectedValue)["Brand_Id"]).ToString();
int ID = Convert.ToInt32(BrandID);
GetVtgBrandTypes(ID);
}
else
{
int ID = Convert.ToInt32(txtBrand.SelectedValue.ToString());
GetVtgBrandTypes(ID);
}
}
maybe not nice but it works
|
|
|
|
|
|
Translation: Oh crap ive had a bid accepted on rentacoder and I have no clue how to do it.
|
|
|
|
|
which translates back to:
hi,
i have to show a customized message in window media player when videos playing..it is a c# desktop application application...message can be video info author or any customized message by user..advance appreciate for help and advise..
regards
tanzeel;
I hate it when the OP gets removed while holding one or more replies.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Hi,
i have an existing C# application made in 2005, now we have converted
it into the 2008, now i want to design a from using WPF, and i want to
give it to the 3d look.
So how can i do this?
i am new for WPF.
|
|
|
|
|
A good startup tutorial for WPF 3D is available here.
Based on the size of your older app, this conversion may be a time consuming process.
My signature "sucks" today
|
|
|
|
|
Hello,
I have used
using System.Globalization;
using Excel = Microsoft.Office.Interop.Excel;
in m y project so that I can write my data to excel which works fine when I include the Microsoft object library 12 in my project.
But when I load my program on some other pc the object file 12 is not there with the PC and my code gives errors.
What should be done?
Pritha
|
|
|
|
|
Ive done similar in c++ and it seems that you really need to know which version of excel is on the PC, since it seems to be very hard to do what I would call a 'late bind' to the comm object depending on version.
Does your c# program crash straight away ? The only 100% foolproof way Ive found in c++ is to instanciate the excel object, get the excel version number, and if its not what I expect (ie, when I build the program and imported the type library for excel version x), exit the program gracefully .. I dont know if that helps at all, since I havnt had to use c# yet to do it
'g'
|
|
|
|
|
You can use
using System.Data.SQLClient;
and extract and write data to excel. Just use an excel sql connection string and treat excel like a database.
ConnectionStrings.com is your friend.
|
|
|
|
|
I faced a problem with office 10 when office CDO objects were needed to be installed on a client machine.
This could be something similar to what you are facing here.
My signature "sucks" today
|
|
|
|
|
Peace be upon those who follow true guidance
Hello
This Problem is very easy
You can install Microsoft office in new PC , only .
Because, This library (Microsoft Excel 12.0 object library ) come with Microsoft office 2007 .
Regards
Dr Anas Abbas
|
|
|
|
|
My code for calculating fluid flows in a pipe or channel is working nicely now, except for the last step. I use a textbox for user input of a selected slope, and a TextChanged event to perform the final calculation. But the moment I enter one character, my event handler is called. I thought it would wait until I tabbed away from the field, or until I pressed Enter to process the change, but apparently not. If I enter, for example, 1.234, it works fine (except that the answer is an overflow in this equation), but if I enter a decimal point, as in .016, the instant I enter the point I generate an exception - invalid format.
What am I doing wrong here? Is there another event I should use? Can I fix this one?
"A Journey of a Thousand Rest Stops Begins with a Single Movement"
|
|
|
|
|
Roger Wright wrote: Is there another event I should use?
You might want to try the Validating event.
Roger Wright wrote: Can I fix this one?
I've done this in the KeyDown event in the past, FWIW.
if (e.KeyCode == Keys.Enter)
{
double x;
if (!double.TryParse(txtBox.Text, out x))
{
MessageBox.Show(txtBox.Text + " is not a valid number");
}
}
I wouldn't do any real validating in the TextChanged event, since you can correctly type partial numbers that won't validate until you type the whole thing.
CQ de W5ALT
Walt Fair, Jr., P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
the normal thing to do, most of the time, is to have one or more input controls that gather input parameters, but don't launch anything major; and a launch control, say a Button. So the user basically says very explicitly "I'm done, now you compute".
you can try without in simple cases, when (almost) all conceivable input values can be handled; this seldom includes the input of floating-point numbers, as you discovered.
one alternative is to use a time-out, i.e. a timer which gets reset and launched on every key stroke/mouse click into the input controls; when the timer fires, no parameter change has been applied for the last N milliseconds, so the input phase is assumed to be finished, and the compute phase is started automatically.
and then you could rely on a special key, say the ENTER key. That takes a little KeyDown handler, as you well know by now. It may be tricky to get comfortable with that solution when more than one TextBox is involved though.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
I was hoping to make an interactive form, with changes to the pipe slope triggering new results without requiring an explicit button click to recalculate, but that may be beyond my present capability. The dimensions are generally static values, dictated by the design, so they don't change much. This is all new to me, being an electrical engineer pressed into service as a civil engineer, so I'm still learning a lot. I did a sensitivity analysis on the basic equation for flow and found that slope is about 10000 times more important than dimensions, so I chose slope as my primary variable for tweaking the design. I think my best solution for now is to eliminate the textbox event handler and add an Evaluate button. Later, when I get smarter about building Windows solutions, I can go back to trying to make my original design work.
Thanks for your invaluable help, Luc.
"A Journey of a Thousand Rest Stops Begins with a Single Movement"
|
|
|
|
|
You're welcome, Roger.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
The TextBox.Leave event is fired whenever tabbing out.
TextBox.KeyDown to check for Enter event.
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("You pressed enter! Good job!");
}
}
|
|
|
|
|
Hi Roger,
Hope this doesn't arrive too late - I saw your post the other day just as I was running out the door. I don't know C# from ****, but here's pseudo-code that I've implemented in various other language/platforms. The common idea is a form with multiple text boxes, typically numeric. Modifying any one of these updates all the others affected. I'll use a real simple example: temperature conversion - boxes are celsius, fahrenheit, kelvin.
I'm assuming an event-driven environment with an accessible exception-handling mechanism, although the code can be mangled to fit dumber boxes.
float deg_cel, deg_fahr, deg_kel;
const CELSIUS = 1, FAHRENHEIT = 2, KELVIN = 3;
try
{
deg_cel = parse_to_float(text_of_cel_box);
if (deg_cel < CEL_MIN || deg_cel > CEL_MAX)
throw new exception("out of range");
update_all(CELSIUS);
}
catch (exception exc)
{
if (exc ...)
}
switch(which)
{
case CELSIUS:
deg_fahr = deg_cel * 1.80 + 32.0;
deg_kel = deg_cel + 273.16;
break;
case FAHRENHEIT:
... etc
}
if (which != CELSIUS)
text_of_cel_box = appropriate_format(deg_cel);
if (which != FAHRENHEIT)
text_of_fahr_box = appropriate_format(deg_fahr);
... etc
The biggest gotcha is if this last update of the text boxes causes another onchange event... Then you need some (dirty-ish) code to stop it infinitely recursing up its fundament.
The structure of the update routine looks a bit overkill for this simple example, but it scales nicely to things like one I did for location conversions - lat/long in different formats, zone/easting/northing on multiple grids, map sheet number/name, etc - about a dozen text boxes all up.
Cheers & HTH,
Peter
Software rusts. Simon Stephenson, ca 1994.
|
|
|
|
|
Sorry, posted in the wrong slot in the tree, and too dumb to move it. Please see my reply to William in this thread.
P
Software rusts. Simon Stephenson, ca 1994.
|
|
|
|
|
I have a WinForms application I'm writing that used to work with no problems. I haven't made any changes; I haven't touched the code in a month or two due to other things in my life. Last night I went back to it to fix it up and such. When I would press Ctrl+F5 (Start Without Debugging) I got nothing. I mean, I saw the wait cursor for a couple of seconds then it disappears. I checked Task Manager and the process is there. It shows the current memory usage at ~29,000KB ... that number never changes no matter how long it sits.
If I press F5 to start debugging it works flawlessly. I have also tried in Release mode. And I have tried running the application directly from the \Debug and \Release folders outside of the VS environment. It did the same thing. Debugging is the only way it will work.
Anyone ever see this before or have suggestions? I have tried changing the target .NET version to 2.0, 3.0 and 3.5 (it was originally developed on 2.0 and worked just fine). Thanks in advance.
|
|
|
|
|
Hi,
probably some files got damaged or out of sync.
this is what I would try:
1.
close Visual, open Windows Explorer, look for your project, locate the obj folder and delete all of it; locate the bin folder, and in its debug and release subfolders, delete the files it holds that aren't files you created and are needed as inputs to your app (including the ones with ".vshost." in their name).
2.
double-click the EXE in the bin/debug folder; that may already work.
3.
open Visual, and perform a "rebuild solution".
All should be well now, unless you have messed up your project's settings.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Well, I can now run it from the \Debug folder without running it in the debugger. However, I still can't "Start Without Debugging" in VS. I haven't changed project settings. But which one(s) could cause this?
|
|
|
|
|
I would suggest you now try a release build, and run that in the debugger, as well as by double-clicking the bin\Release\xxx.exe
If that works well, it increases the trust in the code; there are a lot of things one can do wrong, here are two relevant links:
Surviving the Release Version
http://www.codeproject.com/KB/debug/survivereleasever.aspx
Debugging Release Mode Problems
http://www.codeproject.com/KB/debug/releasemode.aspx
I have little experience with "start without debugging"; most if not all project settings seem to be common between with and without debugging. What may be quite different is the exception handling; there is an "Exceptions..." menu item under the Debug menu. Not sure what advice to give you, except what I do: always code defensively, make sure you try and catch everything that might go wrong, at some level (e.g. I always have a big try-catch in the static main that launches all), and ALWAYS do something with the exception you catch, never just swallow it.
I'm afraid I'll need some symptoms in order to be able and help you any further.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Alright, thanks much. I'll give that a try and post back with the results. I did read somewhere to set the "Exceptions..." dialog to catch all exceptions that are thrown instead of set to "User-Unhandled". I tried that but to no avail.
Also, I tried putting a simple "MessageBox.Show("Test");" before "InitializeComponent();" in the form's constructor, MainForm.cs: MainForm(). It never even displays the MessageBox when I encounter the issue where it won't run at all.
|
|
|
|
|