|
One quick and easy way (cheating a bit) to fix this is to simple subtract 543 years from the final date BEFORE you enter it into SQL
|
|
|
|
|
I've tried that before but it didn't work. It seems like it adds 543 just before storing into the db. But when processing, it uses the displayed value. For example, if i try to store a year of 2520, it store 1977. But if i try -543, it says "Out of Range". What a headache... Don't know how to fix it.
KiT
|
|
|
|
|
Unfortunately I don't know of a fix, perhaps though you can band-aid it on the other side? When you retrieve the data back out, add 543 to it.
|
|
|
|
|
Hi,
is there a simple way to scroll the image that is larger than the screen size in a simple way?please help
Best regards,
E.A.
|
|
|
|
|
Do you mean scrolling a PictureBox?
Read this ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemWindowsFormsScrollBarClassTopic.htm
Basically you attach a ScrollBar component to the picturebox.
In the link there is a full sample.
Eduardo Diaz
site | english blog | spanish blog
|
|
|
|
|
Hi
I have a number of options which i want to when clicked open up a panel below with another dropdown list relating to the origional choice. Each option from the first drop down list would open a new panel with a new dropdown list and remove the previous.
Any ideas how to code something like this, im guessing its easier than I am trying to work it out! This is for c# asp.net
Thanks
Adam
|
|
|
|
|
If you're trying to make a static form that doesn't change then what you're doing is easy as pie:
Create your form with all of the drop downs in their own seperate "Panel" controls. (Use a Table for the proper line ups of drop downs). Then simply change the Visible property of all of the drop downs to false (except for the original one). Now make sure the "AutoPostBack" is set to true on the first dropdownlist. Then in the "OnSelectionChanged" (or something like that) event, simple check the value of the new dropdownlist selected item and make the corresponding panel control visible according to the selection.
Now if you're using BOUND data, this is all a different story that I'm not going to type up unless this is the case
|
|
|
|
|
Thanks for the quick reply.
The options in the drop downs are manually put in, not taken from a database due to them maybe changing quite regularly. However there may be 3 options selected which will cause a other funtion to run, but i think i know how to get round that one.....
I have the panels ready etc, the first drop down needs to be a required option which i dont have a problem with, but its where i need to add the other code im having the problem with?
Thanks
Adam
|
|
|
|
|
By "the other code" I assume you mean the code to make the other panels visible?
If so:
In the GUI, select the main dropdownlist. In the "events" section of the properties list doulbe click the empty space to the right of the event: "SelectedIndexChanged"
You code will go in here. If you'll paste the code you currently have, I can show you what I mean.
Or hit me up on MSN @ xraheemx@hotmail.com
|
|
|
|
|
Unfotunatley we cant use msn at work So ill have to put it here. What ive got is the first part so that if it is anything but the initial value it will do the panel viewing:
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (Speciality.SelectedItem.Value!="Select a speciality")
{
}
}
So as an example of the options:
Select a speciality
Option 1
Option 2
Option 3
Option 4
Option 5
Thanks again for your help.
Adam
|
|
|
|
|
OK, so lets say that the other dropdowns are named option1, option2, option3 etc. The following code will work for you:
<code>
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e)
{
select(Speciality.SelectedItem.Value.ToLower())
{
case "option 1":
option1.Visible = true;
break;
case "option 2":
option2.Visible = true;
break;
case "option 3":
option3.Visible = true;
break;
case "option 4":
option4.Visible = true;
break;
case "option 5":
option5.Visible = true;
break;
default:
break;
}
}
</code>
|
|
|
|
|
Keep in mind that if all of this is static, it would be better (and MUCH faster) to do this in Javascript so the items would not have to PostBack (and page flicker) in order to update the visibility of the dropdowns.
|
|
|
|
|
Its not allowing me to build the project with code like this? Im getting all sorts of build errors for missing ; and for the case text?
Thanks
Adam
|
|
|
|
|
The code that I wrote is not the actual code you should use, just an example of how to do it. Paste all of your code here and I'll fix your syntax for you.
|
|
|
|
|
Although syntactically my code is correct, are you sure you are using a c# code behind and not a VB.NET code behind? Also, did you paste exactly what I wrote?
|
|
|
|
|
Yes, im positive it is a c# code behind page.
I pasted exactly what you wrote in, but just changed the case values and visible panel names to that of what I am using. I have underlined where I am getting build errors
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e)
{
select(Speciality.SelectedItem.Value.ToLower())
{
case "Breast Surgery":
SpecialityBreastSurgery.Visible = true;
break;
case "Cardiology":
SpecialityCardiology.Visible = true;
break;
default:
break;
}
}
Many thanks
Adam
|
|
|
|
|
omg I'm so sorry... my mind was in VB.NET when I wrote this. (VB uses the keywork SELECT instead of SWITCH that is used in C#"
<code>
private void Speciality_SelectedIndexChanged(object sender, System.EventArgs e)
{
switch(Speciality.SelectedItem.Value.ToLower())
{
case "breast surgery":
SpecialityBreastSurgery.Visible = true;
break;
case "cardiology":
SpecialityCardiology.Visible = true;
break;
default:
break;
}
}
</code>
Also remember that your strings for your CASE statements MUST be all lowercase in this instance because I used a .ToLower() in the switch. (I have a habit of doing this to remove casing errors). If you want to use exact case, just simply remove the .ToLower() from the switch.
|
|
|
|
|
Hi there.
I have a form, with an Insert button. I also have a text field txtPassword, and another button next to it. The button is btnGeneratePswd. When I click on this button it calls a function Security.GeneratePaswd() and randomly generates my password, and inserts the value into the txtPassword. But when I click the generate the button, it does what the Insert button does, validate the controls, and does not create the password.
How do make the button create the password and populate the txtPassword textfield without triggering validation?
Regards,
Brendan
|
|
|
|
|
I assume by you saying that the button is automatically kicking off validation that this is an ASP.NET web page?
|
|
|
|
|
Yes, all that it must do is to generate a password, not kick off validation. The Insert button does that.
|
|
|
|
|
Ok, well then I'm also assuming that you're using the Web Validation controls provided by the .NEt Framework? If so, then you are most likely also using the default validation type of ClientSide. If all of this is the case then you can't choose which buttons you want to cause validation and which ones you don't. When client side validation controls are used the form auto validates any time a postback event is attempted. What you will need to do is change the Validation to "Custom" to allow server side validation so that you can tell the server in the code behind which controls to validate. I would google "Web Validation Controls" to get a better understanding of how they work before continuing.
|
|
|
|
|
for(int i=0; i<(players.Length*2); i++)
{
// Do something
// Update the view
updateview();
// Wait
}
I am building a small cardgame.
i give each player a card and then i want to wait for a few seconds before giving next user thier card.
Iam pretty new to C# and havent got any luck when i tested making a thread...
In short;
How can i make a loop that waits for example 3 sec before doing the next lap.
Mrnoname
|
|
|
|
|
System.Threading.Thread.Sleep will sleep the entire thread for x milliseconds before continuing. Keep in mind that if this code is running in your form, the form will not respond to any windows command for that 3 seconds. If you want this to work properly, you should run this block of code in a new thread.
One other way to do this (without locking up the form) is to create a timer instead of a loop.
See the code below:
<code>
private int currentPlayer = 0;
private System.Windows.Forms.Timer t = new Timer();
public void BeginSetupCards()
{
this.t.Interval = 3000;
this.t.Tick += new EventHandler(t_Tick);
}
private void t_Tick(object sender, EventArgs e)
{
updateview();
this.currentPlayer++;
if(this.currentPlayer >= (this.players.Length * 2))
{
this.t.Stop();
}
}
</code>
Keep in mind that there are much better ways of doing this (which are a little more advanced) such as custom threading or even better asynchronous methods. If you would like some examples of the more advanced methods, please reply and I'll be glad to show you.
|
|
|
|
|
XRaheemX wrote:
updateview(); // It's a bad idea to update the form view from within a timer. You should create an event delegate for the update and kick it off using Form.Invoke;
It actually is fine to update controls from the tick event of System.Windows.Forms.Timer, as the event handler runs on the message pump thread.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Thats right (now I remember ), while learning about events and threading I made myself think that the timer ran in a different thread so I could get used to the idea... guess that was a bad idea. lol
|
|
|
|