|
Hello,
I am creating a mobile 5 application using CF 3.5.
I have a combo box that keeps on firing on the selectionIndexChanged event. I need this event to get an item from the combo box. However, when the combo datasource is set it will fire this. I have resolved this issue with a simple bool test. See code below. However, I have noticed that the event often fires. Its hard to track down what is causing this to fire.
<br />
this.cboDataSourceSet = false;<br />
this.cboRecentNumbers.DataSource = this.bsRedialedNumbers;<br />
this.cboRecentNumbers.DisplayMember = "Name";<br />
this.cboRecentNumbers.ValueMember = "ID";<br />
this.cboDataSourceSet = true;<br />
<br />
private void cboRecentNumbers_SelectedIndexChanged(object sender, EventArgs e)<br />
{<br />
<br />
if (this.cboDataSourceSet)<br />
{<br />
}<br />
}<br />
I am thinking of 2 methods to solve this issue:
1) Is there a way to stop the event being fired or a way to track down the event to find what other conditions are causing it to fire?
2) Inherit from the combo box class and add your own SelectionChanged Event. (Can anyone point me in the right direction for doing something like this?).
I would perfer method 2 as I have never done anything like that before. So good for learning something new.
Many thanks for any suggestion and help with this,
Steve
|
|
|
|
|
I have come across something similar (or maybe even the same), IMO, your simple solution is adequate
If you want to inherit, you can try override OnSelectedIndexChanged. Calling the base implementation should fire the event.
|
|
|
|
|
Hi guys,
I have a scenirio where by i need create some circles with varying distance in the sides of a triangle on a Web Page where all the sides are equal.
I have the points for all the three vertex.
I know just because i am using C# for that this question does't belong here.
But please let me know if you have any idea on this..
Thank you
Thanks
Laddie
Kindly rate if the answer was helpful
|
|
|
|
|
You work out the ratio of width to height and use that to calculate the x for a given y, or vice versa.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Hi Christian,
Thank you for the reply. But it will work only if the line is straight.
You mean to say new x = (Width - n) Right..
But here it is a slanting line. Like the sides of a triangle.
Or may be i got you wrong ?
Thank you
Laddiw
Thanks
Laddie
Kindly rate if the answer was helpful
|
|
|
|
|
You got me wrong.
If x1=5, y1 = 10, x2 = 25, y2 = 50
then the ration is (25-5)/(50-10), or 20/40 or 1/2.
So, if you want to know the y position when x is 10, you subtract 5, to get to your base line. Then you multiply 5 by 2. Then you add 10 ( your starting y ). So, 10,20 is a point on the line.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Ok. Looks like it should work..Let me try implementing the same and will come back.
Thank you
Have a nice day.
Thanks
Laddie
Kindly rate if the answer was helpful
|
|
|
|
|
Hi chris,
I created a function something like this
public void pointX(int x1, int y1, int x2, int y2, int dis,out float newX,out float newY)
{
float ygrad = y2 - y1;
float xgrad = x2 - x1;
ygrad /= 100;
xgrad /= 100;
newY = (dis * ygrad) + y1;
newX = (dis * xgrad) + x1;
}
It is working fine...
The requirement was that i need to draw some circles depending on some percentage, whose center will be an offset from the side of a triangle, where offset is the percentage.
Any way thank you for that idea..
Have a nice day.
Thanks
Laddie
Kindly rate if the answer was helpful
|
|
|
|
|
I'm building a program in which the content (data, images etc) needs to be updated regularly by a non-programmer.
Is there any way I can update only the content but not the .exe ??
I've read about ClickOnce, but as far as I can see it will check for new version of the .exe
TIA
|
|
|
|
|
if it does, it's just going to find it's not changed, right ?
If it's just content, you can write your own FTP code to download it as needed.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Ok, let me make this clearer.
My program is going to read from an XML file which in turn contain links on local folder to image files. The updated one will be the XML & image files, not the .exe
All the files will be saved on the server, and ready to be 'pulled' from the clients when they check for update.
I guess FTP code is fine, but I need the mechanism so that the client know that there is new data to be updated.
Hope that clears it up
Thanks
|
|
|
|
|
I would assume one of two things
1 - you download a file via FTP that has a date of last update in it, and check that
2 - you write a webservice which wraps that stuff up a bit nicer, but basically does the same thing
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
DataSet DBset = new DataSet("Client_Number");<br />
DBCommand = new OleDbCommand("Select Client_Number from tbClient", DBConnection);<br />
OleDbDataAdapter mydb = new OleDbDataAdapter();<br />
mydb.SelectCommand = DBCommand;<br />
mydb.Fill(DBset);<br />
cmbClientID.BeginUpdate();<br />
cmbClientID.DataSource = DBset.Tables["Client_Number"];<br />
cmbClientID.DisplayMember = "Client_Number";<br />
cmbClientID.ValueMember = "Client_Number";<br />
cmbClientID.EndUpdate();
This is my code. It doesn't work correctly as I want.
Sorry, I have corrected that mistake.
modified on Wednesday, March 26, 2008 8:06 PM
|
|
|
|
|
And, what is it doing instead ? Is there anything in your dataset ?
I assume all the ???? are there for looks, so your boss can't work out that you're posting here ? The code doesn't look like this, right ?
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
I have corrected it. It's some non english symbols.
|
|
|
|
|
DataSet DBset = new DataSet("Client_Number");<br />
DBCommand = new OleDbCommand("Select Client_Number from tbClient", DBConnection);<br />
OleDbDataAdapter mydb = new OleDbDataAdapter();<br />
mydb.SelectCommand = DBCommand;<br />
mydb.Fill(DBset);<br />
cmbClientID.BeginUpdate();<br />
cmbClientID.DataSource = DBset.Tables["Client_Number"];<br />
cmbClientID.DisplayMember = "Client_Number";<br />
cmbClientID.ValueMember = "Client_Number";<br />
cmbClientID.EndUpdate();
Very difficult to understand here. Why nothing in my combobox cmbClientID????
Everything seems to be normal!??
|
|
|
|
|
cuongmits,
Your code looks fine. Check if the "DBset.Tables["Client_Number"]" has any rows via:
Trace.WriteLine("Client_Number Row Count" + DBset.Tables["Client_Number"].Rows.Count.ToString());
Regards,
Gareth.
|
|
|
|
|
Hi All,
I know this may seem trivial to many here but I've just implemented my first background worker thread with a meaningful GUI update in the shape of a progress bar ...
I thought in the light of so many dumb questions from me lately a bit of success should go reported as well ...
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
*grin* threading is always fun. And not in a good way. Congratulations
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Cheers fella ... its been a tad hairy already ... loads of testing to do to make sure It doesn't end up in thread hell!
I found this free ebook from jo Albahari really useful.
http://www.albahari.com/threading/[^]
I REALLY need to get a copy of his book - C# in a nutshell, total respect for the way he writes. So many techie books are written by people too close to the code if you get my meaning.
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
Jammer wrote: in the light of so many dumb questions from me lately
Tssk tssk. Don't diss yourself.
Jammer wrote: I thought in the light of so many dumb questions from me lately a bit of success should go reported as well ...
Congratulations - welcome to the world of the battle scarred.
|
|
|
|
|
Cheers fella ... much appreciated.
I'm sure it could be done better tho!
haha!
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
BTW - did you get your LINQ SubmitChanges problem sorted?
|
|
|
|
|
Hi Pete,
Well sort of ... I'm still a bit confused about it to be honest.
Basically I think it has something to do with how LINQ and the immediate window interact. I was running a routine from the immediate window but each time it hit the SubmitChanges() line it would perform the submit and then just sit there waiting ... and waiting ... pressing pause stopped the debugging and left a green arrow saying that the submit line was the next due for execution. Hitting stop and going to have a look at the database showed the record in there that was added by the submit line that the debugger was saying it was about to execute ...
Really odd ... I haven't changed any code in that part of the app and running it via the interface is fine but even now if I run it via the immediate window I see the same behaviour ...
odd ...
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
I'm trying to change data from one database .mdb file (MSAccess). Every time I want to add new item into database file, I click on button ADD. The first time, I tried to use CurrencyManager, the second time, I tried to use query. Then I closed my program and open my database file by MS Access program but I cannot see any change on it. Only database from the cache (when my program was working) was change.
This is my 2 codes. Any one can help me? 12pm already, I can not sleep with this!!!!
Thanks in advance!
CurrencyManager DBManager;<br />
OleDbConnection DBConnection;<br />
OleDbCommand DBCommand;<br />
OleDbDataAdapter DBAdapter;<br />
DataTable DBTable;<br />
string DBPath;
....<br />
DBPath = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " + openFileDialog1.FileName;<br />
DBConnection = new OleDbConnection(DBPath);<br />
DBConnection.Open();<br />
DBCommand = new OleDbCommand("Select * from handbook", DBConnection);<br />
DBAdapter = new OleDbDataAdapter();<br />
DBAdapter.SelectCommand = DBCommand;<br />
DBTable = new DataTable();<br />
DBAdapter.Fill(DBTable);<br />
txt1.DataBindings.Add("Text", DBTable, "ID");<br />
txt2.DataBindings.Add("Text", DBTable, "Serial");<br />
txt3.DataBindings.Add("Text", DBTable, "Comment");<br />
DBManager = CurrencyManager)BindingContext[DBTable];<br />
DBManager.RemoveAt(DBManager.Position);<br />
DBAdapter.Update();<br />
....
the second code:
private void button5_Click(object sender, EventArgs e)<br />
Add<br />
{<br />
DataSet dbSet;<br />
DataRow dbRow;<br />
<br />
<br />
dbRow = DBTable.NewRow();<br />
dbRow[1] = 5;<br />
dbRow[2] = "aaa";<br />
DBTable.Rows.Add(dbRow);<br />
DBTable = new DataTable();<br />
DBAdapter.Fill(DBTable);<br />
<br />
DBCommand = new OleDbCommand("insert into handbook (Serial, Comment) values (" + txt2.Text + ", " + txt3.Text + ")", DBConnection);<br />
DBAdapter.InsertCommand = DBCommand;<br />
<br />
DBAdapter.Update(DBTable);<br />
}
|
|
|
|