|
if a show them as dialog , I can't minimize all the forms when pressing minimize button on Form1.
|
|
|
|
|
OK, so do you have any clue on how to experiment?? This took me all of about a minute to code:
Form1:
Dim frm As New Form2()
frm.MyTopLevelForm = Me
frm.Show(Me)
Form2:
Public MyTopLevelForm As Form
.
.
.
Dim frm As New Form3()
frm.Show(MyTopLevelForm)
|
|
|
|
|
Thank you !
But again ,the minimize process is ok , but if I click on form2 , the form 3 goes behind and doesn't stay on top.
|
|
|
|
|
I have no idea how you really want this to work.
All you've done is "that's nice but I want it to do this", "that's nice, but now I want that", "now I want this"...
Sorry, but you've been given the tools to experiment with. Start experimenting.
I've got my own 50,000 line app to deal with.
|
|
|
|
|
To be clear :
I have form1 , Form2 , Form3.
Form1 is open first , Form2 is open from a button on form1 , Form3 is open from a button in form2.
I want that :
- When the form2 is open , Form2 is over Form1.
- When Form3 is open , Form3 is over Form2 and Over Form1.
- This behavior is only inside application . If another window is open for example Windows explorer , all my forms should goes behind.
- If the 3 forms are open , if I press minimize button on form1 , all the forms should minimized on taskbar.
- And when the 3 forms are open they should be closed in this mode : Form3 first , Form2 and Form1.
It's clear now ?
I try different ways , but I can't realize. ( with 2 forms I have done very easy , but with 3 forms I can't do it).
It's not an experiment. I have a situation where I need this.
Thank you !
|
|
|
|
|
dilkonika wrote: It's not an experiment. I have a situation where I need this.
No, I said this is where you come up with a small test project and experiment for yourself! It's the best way to learn.
|
|
|
|
|
Create a WindowStateChanged event for your forms (you may need to override WndProc to get the underlying Windows message WM_SYSCOMMAND SC_MINIMIZE etc). Child forms need to subscribe to that event of their parent form and react appropriately.
Also look at the TopLevel property of the forms.
|
|
|
|
|
This is quite an interesting problem. To get the desired Z-order then the main form must own Form2 and Form2 must own Form3. Having set that up we find that Form3 is unaffected by minimization of the MainForm/Form2 pair.
Form3 needs to be linked to Form2 in some way, but how? My first guess was to try the SizeChanged event but found that Form2 does not raise SizeChanged when MainForm is minimized. Next guess was the LocationChanged event but it's not that either. However VisibleChanged is raised by Form2 when MainForm minimizes or restores. So Form2 is hidden when MainForm is minimized and the solution to the problem becomes clear.
Form3 could subscribe to the VisibleChanged event of Form2 and set it's visibility but I chose to do it in a different way. In the test code Form2 hides/shows all the forms in it's OwnedForms collection in response to the VisibleChanged event.
Test code
=========
Private Sub CreatePopups()
Dim f2 As New Form()
f2.Text = "First Popup"
AddHandler f2.VisibleChanged, AddressOf Form_VisibleChanged
f2.Show(Me)
Dim f3 As New Form()
f3.Text = "Second Popup"
f3.Show(f2)
End Sub
Private Sub Form_VisibleChanged(sender As Object, e As EventArgs)
Dim f As Form = DirectCast(sender, Form)
For Each ownedForm As Form In f.OwnedForms
ownedForm.Visible = f.Visible
Next
End Sub
Alan.
|
|
|
|
|
Finally , Resolved.
Thank you !
|
|
|
|
|
|
Don't call it VB.NET 6. You'll get some very confused looks. Call it VB.NET 2008.
You're looking at the old Setup and Deployment project. This wasn't available in any Express editions of Visual Studio and, really, the entire project type was removed from Visual Studio 2010 and above.
Use a 3rd party installation crafting tool like Advanced Installer, InstallShield, InnoSetup, Wix, ANYTHING but the Setup and Deployment project.
|
|
|
|
|
|
Hello !
I'm trying to write data in windows registry with this code :
Private Sub write(vl As String)
Dim key As String = "SOFTWARE"
Dim regkey As RegistryKey = Registry.LocalMachine.OpenSubKey(key, True)
If IsNothing(Registry.LocalMachine.OpenSubKey(key & "\DQ10", True)) Then
regkey.CreateSubKey("DQ10")
End If
regkey = Registry.LocalMachine.OpenSubKey(key & "\DQ10", True)
regkey.SetValue("P_US32", vl)
regkey.Close()
End Sub
But on this line :
Dim regkey As RegistryKey = Registry.LocalMachine.OpenSubKey(key, True)
I'm getting this error :
An unhandled exception of type 'System.Security.SecurityException' occurred in mscorlib.dll
Additional information: Requested registry access is not allowed.
What can I do ?
Thank you !
|
|
|
|
|
The error message is quite clear: your application doesn't have permission to write to the HKEY_LOCAL_MACHINE hive of the registry.
Either change your code to read/write from a key under the HKEY_CURRENT_USER hive, or run your application with the elevated permissions required to write to the machine hive.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
The application was running ok from the visual basic 2012. I have upgraded to visual basic 2013 , and after that I can't write anymore to this key.
and I run the application under an administrator account
modified 31-Mar-14 15:09pm.
|
|
|
|
|
It's nothing to do with the version of Visual Basic or .NET; your application simply doesn't have permission to write to the key.
Unless your application is running as a user with Local Administrator permissions with UAC elevation, you won't be able to write to the HKEY_LOCAL_MACHINE hive of the registry.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Ok , but I have noticed this problem after the upgrade process.
And I'm running my application as a Administrator user . ( if I use regedit , I can write to this key)
|
|
|
|
|
|
UAC is disabled on my computer
If I run the exe file outside the visual studio , I run with "run as administrator" everything is ok.
|
|
|
|
|
As far as I'm aware, that just means that applications which request elevation will automatically elevate without prompting. If your application doesn't request elevation, it will still be running as a standard user.
You can use Process Explorer[^] to determine whether your application is running elevated:
http://superuser.com/a/74521[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I check with Process explorer , and the application is running as standart user.
But how can I force the application , inside visual studio to run as Elevated ?
I repeat , that this problem appear immediatly after Visual basic upgrade from 2012 to 2013. After upgrade , I run my application inside visual basic , and I get this error.
|
|
|
|
|
|
in my manifest file , I try all these optons :
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
but still I can't read or write to the key.
|
|
|
|
|
Try running Visual Studio elevated before running your application.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Hello !
I have 2 databases one of them is a empty database , and other has data.
Using SMO , how can I check that the second database has the same tables structure as the first database ?
Thank you !
|
|
|
|