|
Good morning. Lately I have started with C #, and emerged me some doubts. The main, and the only one I have to say for now is the design of the MenuStript.
I want to create a MenuStript like this:
http://oi61.tinypic.com/adk9wy.jpg
Who can help me with this problem?
Thank you
-- modified 23-Nov-14 9:48am.
|
|
|
|
|
Just add a MenuStrip control to your form from the toolbox in the Designer, and it's pretty obvious from there in - it even prompts you with "Type Here".
Then double click the menu options you need code for, and it will add the method skeleton for you.
If you try a basic google, it will find loads for you: Add Menu Strip C#[^]
examples, tutorial, videos. What more do you need?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Yes, but i refer the design xD!
|
|
|
|
|
So get busy and create it. But, you'll need Win7 with Aero Glass to duplicate the visual aspects of the Window Frame.
«If you search in Google for 'no-one ever got fired for buying IBM:' the top-hit is the Wikipedia article on 'Fear, uncertainty and doubt'» What does that tell you about sanity in these times?
|
|
|
|
|
My brain and my Google skills are sucking this late at night.
Lets say I have a control height of 30 pixels
Lets say my data range is -5 to 15
I want to normalize my coordinates, but flipped in Y up fashion.
I.e. -5 is Y=29 on the screen, 15 is Y=0
Been googling transformation, coordinate systems, translation, etc. Lol, can't find a darn thing... I know this is simple math LOL.
Only thing I'm coming up with this late at night is +5 all the points to get to a 0 origin, * 0.66 to scale and then 29 - that... but that can't be right...
|
|
|
|
|
I am sure there is a proper mathematical way to do it, but this is what I figured out:
-5 to 15 = 0 to 20 is 21 'points'
0 to 29 is 30 pixels
thus
Y = ((y + 5) / 21 * 30) // transform 'points' to pixels
Y' = 29 - Y // flip down to up
|
|
|
|
|
Shouldn't that be done the other way round?
Y = ((y + 5) * 30) / 21 // transform 'points' to pixels Since all the values are given as integers (and are likely to be integers at source) doing the division first will not give you a good result.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Yes, but I tested it on my calculator and it worked fine.
Actually, it would be better to use float values since Windows forms accepts them as co-ordinates.
|
|
|
|
|
So it's even unit tested? Ship it then!
It would be better to use floats, but you know and I know how few people round here think of that...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Hmm... seems more like this is the correct answer:
double Y = ((y + Math.Abs(dMin)) * (dHeight - 1)) / (dMax - dMin);
Y = dHeight - 1 - Y;
This works with:
lst.Add(0);
lst.Add(3);
lst.Add(7);
lst.Add(10);
With the commented and uncommented values.
dHeight = 30 (since the control is 30 pixels high, but the pixel range is 0 through 29)
With the original formula, the 0 would get to 29 correctly, but the 10 would only go to 1.72. With the -5 / 15 range, it would go to 0.43.
With this new formula, both ways got to 0 & 29.
|
|
|
|
|
Ok, now I'm really confused... the min & max points are working now, but it seems like points in the middle are all wacky.
If my control is 30 pixels high, the mid point is going to be 14, right?
so if I give it 0, 3, 7, 10, my min & max is 0 & 10. So one would expect 5.5 to map to 14, but its mapping to 13.05 .
|
|
|
|
|
NM... I think I'm on crack again... LOL... the new formula does work. If my range is 0 to 10, the mid point is 5. And the mid point on a control 30 pixels high, the pixel range is 0 to 29, so the mid point is 14.5 .
|
|
|
|
|
Actually, this is in a WPF application, so by WPF convention, its an IEnumerable of doubles .
LOL, I guess my late at night answer was pretty close... I confused the whole 0 - 29 / 30 / 20 / 21 thing haha...
|
|
|
|
|
Ah, so I was pretty close... I guess I shouldn't try to write code at 11pm LOL... got thrown off by the 0 / 1 0 - 29 = 30 points thing haha... when I woke up this morning, I was like what the hell was I thinking?
|
|
|
|
|
I've had many mornings like that.
|
|
|
|
|
Wait a sec here... I'm testing this out...
Lets say I pass in 0 through 10
So 0 should transform to 29
and 10 should transform to 0
0 through 10 is 11 pixels
((0 + 0) / 11 * 30) = 0, 29 - 0 = 29, so that works
((10 + 0) / 11 * 30) = 27.27, 29 - 27.27 = 1.73 which doesn't work.
even if I do the multiplication first,
((10 + 0) * 30 / 11) = 27.27
|
|
|
|
|
Yeah, I think something is amiss...
List<double> lst = new List<double>();
lst.Add(0);
lst.Add(3);
lst.Add(7);
lst.Add(10);
double dMin = lst.Min();
double dMax = lst.Max();
double dHeight = 30;
double y = 10;
double Y = ((y + Math.Abs(dMin)) * dHeight) / (dMax - dMin + 1);
Y = dHeight - 1 - Y;
System.Diagnostics.Debug.WriteLine(Y);
With the -5 to 15 range, it gets closer, 0.43, so I guess that's a round off... if I truncate everything to ints, it comes out even worse, to 2 instead of 1.72.
|
|
|
|
|
Thank you for my Sunday puzzle !
private Dictionary<int, int> MapRangeValues(bool flipSign, List<int> sourceRange, List<int> mapToRange)
{
var dctTransform = new Dictionary<int, int>();
double ratio = Convert.ToDouble(mapToRange.Max() - mapToRange.Min()) / (sourceRange.Max() - sourceRange.Min());
int offset = mapToRange[0] - sourceRange[0] + 1;
foreach (var sInt in sourceRange)
{
int val = Convert.ToInt32(ratio*sInt) + offset;
if (flipSign)
{
val = mapToRange.Max() - val - 1;
}
else
{
val--;
}
dctTransform.Add(sInt, val);
}
return dctTransform;
}
private List<int> DataRange = Enumerable.Range(-5, 21).ToList();
private List<int> ControlRange = Enumerable.Range(0, 30).ToList();
private void testTheSucker()
{
textBox1.Clear();
textBox2.Clear();
var result1 = MapRangeValues(true, DataRange, ControlRange);
var result2 = MapRangeValues(false, ControlRange, DataRange);
foreach (var kvp in result1)
{
textBox1.Text += string.Format("{0}\t{1}\r\n", kvp.Key, kvp.Value);
}
foreach (var kvp in result2)
{
textBox2.Text += string.Format("{0}\t{1}\r\n", kvp.Key, kvp.Value);
}
} I am curious to see if this is as general purpose as I intend it to be: so, will test further. I am sure this can be improved (perhaps replaced with a few lines of Linq wizardry ?), and I'd welcome any feedback, corrections, ideas !
// first test results
-5 29
-4 28
-3 26
-2 25
-1 23
0 22
1 21
2 19
3 18
4 16
5 15
6 13
7 12
8 10
9 9
10 8
11 6
12 5
13 3
14 2
15 0
// second test results
0 -5
1 -4
2 -4
3 -3
4 -2
5 -2
6 -1
7 0
8 1
9 1
10 2
11 3
12 3
13 4
14 5
15 5
16 6
17 7
18 7
19 8
20 9
21 9
22 10
23 11
24 12
25 12
26 13
27 14
28 14
29 15
«If you search in Google for 'no-one ever got fired for buying IBM:' the top-hit is the Wikipedia article on 'Fear, uncertainty and doubt'» What does that tell you about sanity in these times?
modified 23-Nov-14 7:51am.
|
|
|
|
|
Wow! You went all out .
Richards answer was kind of a 1 liner though . Although he wasn't converting a list which you are...
Thanks!
|
|
|
|
|
Hi All,
I'm already a somewhat experienced C# programmer. My experience in the .NET world (besides the knowledge of C# itself) is with WPF, Winforms and some WCF.
I wanted your opinion of a good book to learn DB programming using .NET. My primary goal is to learn how to interact with the DB, how to make queries, different type of queries, LINQ etc. Query languages like SQL is a secondary goal, but if you also know of a book that teaches both my primary and secondary goals in one, that would be great.
Thank you very much
|
|
|
|
|
For your interest in Linq and SQL, I'd like to recommend Scott Guthrie's series of nine blog articles on Linq to SQL, links to which are listed here in a recent reply of mine in QA: [^].
There are some (free) books on-line at SyncFusion (including two by noted CodeProject member, Marc Clifton, but his books are not about SQL or Linq) which may interest you: [^], like: "Windows Azure SQL Reporting Succinctly," "Postgres Succinctly", "Entity Framework Code First Succinctly", "Mongo DB Succinctly," and others.
«If you search in Google for 'no-one ever got fired for buying IBM:' the top-hit is the Wikipedia article on 'Fear, uncertainty and doubt'» What does that tell you about sanity in these times?
|
|
|
|
|
Dear folks,
As you know the ILog Diagram, provids with it's own way of drawing objects, it use matrix, and it use it's own coordinate system,
What i intend to do, is to create a search dialog box, which don't be placed over the Node (UserSymbol) it self, and be placed side to the found content.
I was wonder if there are any kinda of ability to find a Node position - which already showing in view port - in pixel positioning?!
I'm using DiagramView Component of iLog Diagram.
Thank you.
modified 23-Nov-14 2:00am.
|
|
|
|
|
Hi to all.
Did anyone already work on C# wrapper for PocketSphinx for converting speech to text and will ing to share some ideas?
Thank you!
|
|
|
|
|
It's very unlikely you're going to find anyone who has used that library here.
Try asking your question in the Forums on the SrouceForge site for it, here[^].
|
|
|
|
|
There is a C# wrapper for Sphinx, called SharpSphinx, here: [^].
I've never tried it.
«If you search in Google for 'no-one ever got fired for buying IBM:' the top-hit is the Wikipedia article on 'Fear, uncertainty and doubt'» What does that tell you about sanity in these times?
|
|
|
|
|