|
Details like that are left up to the VB6 documentation, not VB.NET. They have nothing to do with VB.NET.
|
|
|
|
|
Still...Would be nice if they would put some of the old stuff in the net documentation, so you don't have to leave the net IDE to go look for a legacy feature that net supports. In that sense, it really IS part of net...Just not its new framework. I guess I'm just nitpicking.
|
|
|
|
|
Again. It has nothing to do with .NET at all. It's legacy junk that's only there for backwards compatibility. It offers nothing to .NET development and why would you duplicate documentation that is already out there and redocument language features that have been unsupported for years now?
|
|
|
|
|
It really is NOT part of .NET. What you see in a converted application are methods and hacks that look and work like old VB6 code. It's just a bunch of adaptations cobbled together to make .NET code look and work like old VB6 functionality.
|
|
|
|
|
how can I increase the textbox depth, so to obtain a shadow effect?
|
|
|
|
|
You need to set the multilline property to true. Then it will allow you to change the depth of the textbox.
Every day, thousands of innocent plants are killed by vegetarians.
Help end the violence EAT BACON
|
|
|
|
|
what's the next step after setting textbox.multiline=true
|
|
|
|
|
|
Member 9941343 wrote: how can I increase the textbox depth, so to obtain a shadow effect?
It's a 2D-object, it's not in 3D. If you want a shadow, you'll have to paint it.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Hi Folks,
I am having difficulty sorting a custom class based collection on two fields and am wondering if anyone can assist me. I have a class that looks like so:
Class myClass
private ID as String
private Name as String
private TK as String
private Di as String
private M as String
End Class
Using this class i add to a Collection a number of items, e.g.
Private colClass As Collection
Private clsTheClass As myClass
Set colClass = New Collection
Set clsTheClass = New myClass
clsTheClass.Name = "A"
clsTheClass.TKs = "100"
clsTheClass.Di = "5"
clsTheClass.ID = "1"
clsTheClass.M = "9"
colClass.Add clsTheClass
What i end up with it is a collection that looks like so after adding all the items:
ID |Name |TK |Di |M
1 A 100 5 9
2 B 100 3 9
3 C 10 5 9
4 D 10 7 9
5 E 10 1 9
6 F 400 9 5
7 F 400 4 5
I need to sort the collection On TK, and then DI. That should make the collection look like this:
ID |Name |TK |Di |M
6 F 400 9 5
7 F 400 4 5
1 A 100 5 9
2 B 100 3 9
4 D 10 7 9
3 C 10 5 9
5 E 10 1 9
I am currently using this method to sort on TK, but i cannot get it to work how i need the output:
Public Sub SortCollection(ColVar As Collection)
Dim oCol As Collection
Dim i As Integer
Dim i2 As Integer
Dim iBefore As Integer
If Not (ColVar Is Nothing) Then
If ColVar.Count > 0 Then
Set oCol = New Collection
For i = 1 To ColVar.Count
If oCol.Count = 0 Then
oCol.Add ColVar(i)
Else
iBefore = 0
For i2 = oCol.Count To 1 Step -1
If CLng(ColVar(i).TK) < CLng(oCol(i2).TK) Then
iBefore = i2
Else
Exit For
End If
Next
If iBefore = 0 Then
oCol.Add ColVar(i)
Else
oCol.Add ColVar(i), , iBefore
End If
End If
Next
Dim MyNewCol As New Collection
Dim obj As Object
For Each obj In oCol
If MyNewCol.Count > 0 Then
MyNewCol.Add Item:=obj, before:=1
Else
MyNewCol.Add Item:=obj
End If
Next
Set ColVar = MyNewCol
Set oCol = Nothing
End If
End If
End Sub
Anyone got any pointers as to what i need to change in the sort routine?
Thanks In Advance
|
|
|
|
|
Hi Keith
Is it known how many elements are added to the collection or is that defined at runtime?
|
|
|
|
|
Whenever I sort, I find the largest, or the least first and set the value to "x". From there I work up, or down assigning to a temp object, collection or array, and replacing "x" as the largest each time.
For example,
x = 0
for each item in collection
if item > x then
x = item
end if
next
This gets the largest to begin.
tempCollection.add(x)
while tempcollection.count isnot collection.count
for each item in collection
set x if the item is less than the last in tempcollection and is not less than x
next
tempcollection.add(x)
loop
That is a level one sort, but you should be able to expand to code easily enough. Sorry that I lack any time, or I would have done it for you!
|
|
|
|
|
You could implement the IComparable interface in your class, and then define the CompareTo function. Put your comparison logic in this CompareTo function. Then all you would need to do is call the Sort method on your collection.
MyNewCol.Sort()
Roy.
|
|
|
|
|
I need to hide window when application starts. I use VB 2008 on Windows CE 5.0.
|
|
|
|
|
Take a look in Form properties WindowState
"It's true that hard work never killed anyone. But I figure, why take the chance." - Ronald Reagan
That's what machines are for.
Got a problem?
Sleep on it.
|
|
|
|
|
There is nothing like this. No property ShowWindow or Visible or something like that.
|
|
|
|
|
I think he meant starting your form "minimized".
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Yes, that's the general idea. It's no sweat in C++, just set the last WinMain parameter.
"It's true that hard work never killed anyone. But I figure, why take the chance." - Ronald Reagan
That's what machines are for.
Got a problem?
Sleep on it.
|
|
|
|
|
How can I set main window minimized?
|
|
|
|
|
I wasn't able to find those settings either.
Read this article and maybe you'll be able to work around the problem.
Also, setting the WindowState for a form that doesn't exist yet won't work, which has also been mentioned elsewhere.
"The problem with dotnet smartdevice forms is, that using FormState in the Forms constructor has no effect. As the contructor is called, you cannot alter the formstate, you have to use a schedule to set the formstate to Minimized. Or, better, do not use a form at all."
I'll post back if I find anything useful.
=== UPDATE (reposted) ===
Try the OpenNETCF SmartDeviceFramework Community edition (free)
"It's true that hard work never killed anyone. But I figure, why take the chance." - Ronald Reagan
That's what machines are for.
Got a problem?
Sleep on it.
modified 24-Apr-13 10:40am.
|
|
|
|
|
How can I minimize a main form before start? I could be solution for me too.
|
|
|
|
|
Ignoring the project type does your IDE have the same layout/windows as Figure 3 here?
If you look at the bottom right-hand corner that's where you'll see it.
Sorry I can't find a better example on msdn site, they've taken dowm a lot of the WinCE VB stuff, but using VS2008 doesn't help either. I don't have VS2008 installed right now, but I'll try and sort something out so that I can see what/where the problem lies.
"It's true that hard work never killed anyone. But I figure, why take the chance." - Ronald Reagan
That's what machines are for.
Got a problem?
Sleep on it.
|
|
|
|
|
Hi all.
I have an interesting problem (Interesting to me, anyway ).
I have a form loading, and in the process, an RTB is being loaded with a really super long RTF string. In the process, I get the ContextSwitchDeadlock message box. Now, from what I can gather, it seems to be telling me that system requests have not been able to be carried out for at least 60 seconds while the string is being loaded, and the message is telling me that you can't expect to be able to do anything else while that is going on, AND there may be an evergrowing queue of system tasks that have been put off until the string finishes loading. If this is true, I imagine I am getting the message because this is not a case where DoEvents() would be of any help...As the RTB is being loaded with the string, all of that activity is not code that a DoEvents() line can be inserted into.
So I started looking around, and discovered talk about message pumps (message loops), but no great information on them in general. So my question is, is a message pump what I need, and if so, how do I implement such a thing?
Thanks for any guidance!
|
|
|
|
|
Your app already has a message pump. It always runs on the UI thread (startup thread) and it's the little bugger that triggers that message "Not responding" when your code blocks the UI thread and the message pump can't be processed because of it.
The message you're getting is because COM interop happens through the message pump. You app is using a COM-based component (whether you know it or not) and COM message are not being processed because the message pump is prevented from running by your extremely long running operating (the RTF load).
Adding a second message pump isn't going to accompish anything because it also will be blocked.
The good news is that message only appears when running the code under the debugger. Even better, you can disable it in your app.config. See this[^].
THe better solution would be to NOT load such a massive document into the RTB.
|
|
|
|
|
AAAhhh...OK. Got it. And I can breath a sigh of relief since I am sooooo close to doing a final build and MSI.
I suppose I could break the RTF string up into pages and let new pages load when the scrollbar brings those portions into view.
|
|
|
|