|
Your question would be better handled in the Embedded/Mobile Forum[^]. It actually has nothing to do with VB.NET or any other managed langugage, but is more concerned with ownerdrawing a custom control in the .NET Compact Framework.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I am working on a few applications in VB.net which use a custom application context for many things such as showing the splash screen, database login form, and finally launching the main form. I have looked all over for a way to put a unhandled exception handler in the custom Application Context so anything that "spawned" from it so to speak would be covered if a exception occured. Is there a way that this can be done? I have tried a few of the examples on CodeProject but still no luck. Doing something like Throw New Exception("this is a test") without a Try Catch will cause the debugger to popup and not the exception handler.
Thanks in advance...
The network is down...let's go get bagels.
|
|
|
|
|
What do you mean by "custom Application Context"? Are you talking about AppDomains? Exceptions will not cross AppDomain boundries.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I am using Microsoft Access 97. I am programming the forms using visual basic that comes with Access 97. I am trying to get a certain date in a certain format but can't figure out why it doesn't work. I am updating an excel document.
Dim strDate as Date
strDate = Format(Now, "mmmm d, yyyy")
objSheet.Range("H9").Value = strDate
this produces 2/16/2005
I am trying to out put February 16, 2005
What am I doing wrong?
Thanks in advance!
Beginner in VB
|
|
|
|
|
There is nothing wrong with your VB format code. My guess is that your excel spreadsheet is reformatting the date value. Check the column formatting properties in Excel - the problem is not the VB part.
Robert
|
|
|
|
|
Your right but do you know how I can set the format to the right property in excel using VB?
I will set the value like this:
objSheet.Range("H9").Value = Now()
Then I should be able to use VB to format that excel object.
If I can set the horizontal alignment to right (objSheet.Range("H9").HorizontalAlignment = xlRight) then I should be able to some way set the format property to tell it to show the date as "February 17, 2005". Do you know how?
Thanks in advance!!
Beginner in VB
|
|
|
|
|
I'm fairly new to VB.NET, and am almost embarassed to ask this, but...
If I already have a form instance open and want to refer back to it, how do I do that?
Example
---------
Public F1 as New Form1 '(say it has two textboxes 1 and 2)
F1.show() 'Fill out TextBox1
Dim F2 as New Form2
F2.show()
Now I'm in the F2 instance of Form2. I get some input that I now want to put back into F1. When I try the following in F2
F1.TextBox2.Text="yadayadayada"
I get a syntax problem (squiggly underline) unless I re-instantiate F1 like so...
Dim F1 as New Form1
This, of course, results in a new F1 instance, not the one I had before.
Thanks for any help! If this is in any of my books, I can't seem to find it.
Hal in AZ
|
|
|
|
|
If the form is no longer visible, then even though the class instance exists, the window does not. You need to get F1 to store this string variable outside the textbox ( best place would be in the click event that closes the window ), so you can still get to it. It's the height of ugliness for a control variable to be public, in any case.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Sorry for not being clearer. The instance F1 is still visible, and its control TextBox1 contains data I want to use. I simply go to F2 to collect additional data, and want to put that data back into the same instance (F1) of Form1.
Hal in AZ
|
|
|
|
|
OK - then I would still make the textbox private, and add a property to allow you to get it's text. That will also give you something you can step into in the debugger, to see what's going on.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Still doesn't address the problem. Let's say that in F1, TextBox1 and TextBox2 are private. Now, I write methods doText1 and doText2 with both Get and Set capability. Now we've taken care of the private part. BUT...it still doesn't do what I want.
Inside of instance F2 (of Form2), I want to refer to these methods inside of instance F1 (of Form1). When I try to do something like F1.doText1.Set("yadayadayada") I still get a syntax error saying I haven't declared F1 from inside F2. In other words, inside of F2 any reference to F1 does not point to an instance.
On the other hand, if (inside of F2) I DO declare the instance F1, it creates a NEW F1 rather than referring to the one I already have opened.
I'd like, from instance F2 (of Form2), to be able to write something back to instance F1 (of Form1) without having the declaration construct a new instance named F1. Seems like this would be very easy, but I can't seem to get it to happen.
Hal in AZ
|
|
|
|
|
halhamilton wrote:
Still doesn't address the problem.
It addresses two things. One is a design problem, the other is that you now have a point of entry you can mark to see how far your code is getting, a step towards working out what the problem is.
halhamilton wrote:
Now, I write methods doText1 and doText2 with both Get and Set capability.
Properties you mean ? Why the set ?
halhamilton wrote:
F1.doText1.Set("yadayadayada")
What ? What is doText1 ?
halhamilton wrote:
In other words, inside of F2 any reference to F1 does not point to an instance.
Oh - I thought you were trying to call F1 from the code that holds F1 and F2. Unless you declare an instance inside F2 of F1, that is plainly the case. It sounds like you need to use an event and subscribe to it in the code outside of F2 and F1.
halhamilton wrote:
On the other hand, if (inside of F2) I DO declare the instance F1, it creates a NEW F1 rather than referring to the one I already have opened.
Well, now, that's obvious. That's what you'd have asked it to do. You could SET an instance of F1 to equal the instance you already have, but an event is a far better way to handle this.
halhamilton wrote:
Seems like this would be very easy, but I can't seem to get it to happen
It is very easy, but it's not the way to go. Look up events and delegates, that will put you on the right track.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Thanks Christian. I'll give that a shot!
Hal in AZ
|
|
|
|
|
This is a simple solution that wil work (I tested it).
1) Create a public property "MyForm1" in Form2. The property type is Form1.
Example:
----------------------------
Private m_Form1 As Form1
Public Property MyForm1()
Get
MyForm1 = m_Form1
End Get
Set(ByVal Value)
m_Form1 = Value
End Set
End Property
----------------------------
2) Modify the code to set the reference to Form1 in Form2:
Example:
----------------------------
Dim F2 As New Form2
'Set reference to Form1
F2.MyForm1 = F1
F2.Show()
----------------------------
3) In F2 use the reference to access the text box
Example:
----------------------------
m_Form1.TextBox2.Text = "yadayadaya"
m_Form1.TextBox2.Refresh()
----------------------------
No problem.
Robert
|
|
|
|
|
Thanks to Robert and Christian for the help on this. I learned a lot in looking up event subscription, etc. Also, Robert's solution is what I was thinking of, but I couldn't quite see how to implement it. After seeing his solution, it is very clear.
I am trying to find a way to check for an existing instance. For example, before declaring
Dim F1 as New Form1
I'd like to know if I already have an instance named F1 running. I can't seem to find much to indicate how to do this. Maybe I just don't know how to search the help files that well yet. Is there a managed way to do this?
Hal in AZ
|
|
|
|
|
Hello,
I am currently trying to find out how to use 128/256 bit encryption, however, all of the examples I have found on the internet are for simple text documents. I need to mainly be able to encrypt the data of .wav and .doc files, however, added support for any file would be great.
Does anyone have any suggestions on what I may need to do?
Thanks,
Programmer2k4
My sig:
"The so-called 'Bugs' do not exist, they are merely features hidden by developers with message boxes that say 'An unhandled exception has occurred'." - Programmer2k4
"And it is a professional faux pas to pay someone else to destroy your computer when you are perfectly capable of destroying it yourself." - Roger Wright
I now use my CodeProject Blog!
|
|
|
|
|
Is there a analogous statement to C++'s continue in a For Each... statement in VBScript?
For Each Node in xmlList
If Node = "foo"
continue
End If
'do something else
Next
|
|
|
|
|
There is no equivilent to the continue statement. There is an Exit For statement that will bail out of the entire loop early though.
You can also write your logic to go to the end of the code inside the loop and let the for...next go to the next iteration as it normally would.
|
|
|
|
|
Yeah, I wrote it without the 'continue', but it would be a lot more readable if I could use a continue or something similar.
Thanks for the response.
|
|
|
|
|
There's nothing even close to it in VBScript. JScript supports it.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
all,
while converting a .net class file to a xml webservice i have encountered some problems. First I cannot seem to be able to pass optional parameters to a web method. I have also found problems with the sqldatareader as a "byref" parameter of a web method. This problem entails not being able to return a datareader from a webservice. I also tried to return it via a function and had no luck. Are these limitiations of xml webservices or am I not being creative enough?
For some scenarios instead of using optional parameters I have created overloaded functions and used the "messagename" property of the webmethod to uniquely identify the individual function when publishing the webmethod.
I have not found any real solution for the sqldatareader problem.
Please help!
"Opportunity is missed by most people because it is dressed in overalls and looks like work."
- Thomas Edison
|
|
|
|
|
Optional parameters are not supported on delegate methods, aka Web or Remote methods.
I've never passed an SQLDataReader to/from a Web Service by reference. So, I've never had to deal with the problem. I've always passed the DataSet that the SQLDataReader generated. I can think of a few reasons why this wouldn't work.
1) The SQLDataReader object is not entirely serializable.
2) Chances are, the SQL Server is sitting behind the Web Server, most likely on a different network or subnet, inaccessible to the outside world, except for the web server that runs the Web Service. This means that any SQLDataReader that is passed back to the client can't see the server.
3) Any authentication used by the SQL Server is suddenly going to say that the client machine is an imposter trying to use the token that was created for the web server.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I'm attempting to loop through the controls on a windows form, but get stuck trying to access control within a groupbox. here's a copy of the code so far
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Ctrl As Control
Dim Grp As Control
For Each Ctrl In Controls
MsgBox(Ctrl.Name)
Next
For Each Grp In GroupBox1 (This is where I get stuck)
I cannot find the correct syntax or code to access the Groupbox itself. In total I have 2 buttons, 6 comboboxes, and 4 checkboxes on the form.
Any ideas out there??
DPF
|
|
|
|
|
try this
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click<br />
Dim Ctrl As Control<br />
Dim Grp As Control<br />
For Each Ctrl In me.Controls<br />
Messagebox.show (Ctrl.Name)<br />
Next<br />
For Each Grp In GroupBox1.Controls (This is where YOU get stuck)<br />
'CODE<br />
NEXT<br />
Note: use Messagebox.show instead of Messagebox
|
|
|
|
|
i've never actually had to do this myself, but something like this should work:
Private Sub Button1_Click(Byval sender as Object, byval e as System.EventArgs) handles Button1.Click
for each currentControl as control in me.controls
messagebox.show(currentControl.Name)
if ((typeof currentcontrol is groupbox) orelse (typeof currentcontrol is panel)) then
for each subControl as control in directcast(currentcontrol, groupbox).controls
messagebox.show(subcontrol.Name)
next
end if
next
end sub by the way, just as a general rule, try to avoid the calls to legacy vb functions such as MsgBox as much as you can. most everything you can do (i can't think of anything offhand that can't be) with the legacy calls has been replaced by managed class functionality. i.e. Use the system.windows.forms.messagebox class instead of MsgBox function, and String.Substring instead of Instr etc.
hope this helps.
-jim
|
|
|
|