I'm trying to create a CustomBorderlessForm and paint myself. I've gotten the basic functionality
to work but have this issue.
I have derived a TestForm from the custom BorderlessForm and when dropping a menustrip
or toolstrip onto the TestForm, these controls dock at the top of the form overlaying
the title area which I draw myself. I have tried a number of solutions with no success
and now I am just trying to do the simplest thing I can think of.
I have created a property on the BorderlessForm to Enable or Disable showing a MenuStrip.
When Enabled on the derived TestForm, I create a MenuStrip and place it on the TesForm at a specific location.
This works but I cannot edit the MenuStrip from the Designer. Below is code for a custom
ParentControlDesigner in which I am trying to EnableDesignMode to allow editing of the MenuStrip.
However it still does not work.
I have tried debugging into BorderlessFormDesigner below but the Designer does not hit the break point within Initialize(). To do this I have setup the project in MyProject to execute a new instance of VS and load the project. Within the new instance of VS I open the TestForm in the Designer but the Designer does not hit the break point. I've tried setting a break point in both the
first and second instance.
I've done this sort of thing before with other projects with success. I'm guessing maybe these
controls to not support this type of functionality.
If this is possible I would appreciate some advice.
Here is the code excluding the BorderlessForm.Designer.vb code.
', GetType(ParentControlDesigner))> _Const ConstGridBorderlessTitle AsString = "BorderlessForm"' The MenuStrip object and access for the DesignerPrivate _MenuStrip As MenuStrip
PublicReadOnlyProperty MenuStrip1() As MenuStrip
EndGetEndProperty' The property to enable showing a MenuStrip
DefaultValueAttribute(GetType(Boolean), "False"), _
DescriptionAttribute("Show/hide MenuStrip.")> _
PublicProperty EnableMenuStrip() AsBooleanGetReturn (Me._MenuStrip IsNotNothing)
EndGetSet(ByVal value AsBoolean)
If value = TrueThenIfMe._MenuStrip IsNothingThenMe._MenuStrip = New MenuStrip()
Me._MenuStrip.BackColor = Color.LightSteelBlue
Me._MenuStrip.Dock = DockStyle.None
Me._MenuStrip.Location = New System.Drawing.Point(6, 24)
Me._MenuStrip.Name = "BFMenuStrip"Me._MenuStrip.Size = New System.Drawing.Size(336, 24)
Me._MenuStrip.TabIndex = 0Me._MenuStrip.Text = "BFMenuStrip"Me.Controls.Add(Me._MenuStrip)
EndIfElseIfMe._MenuStrip IsNotNothingAndAlsoMe.Controls.Contains(Me._MenuStrip) = TrueThenMe.Controls.Remove(Me._MenuStrip)
Me._MenuStrip = NothingEndIfEndSetEndPropertyPublicClass BorderlessFormDesigner
' Host objectPrivate HostControl As BorderlessForm = Nothing' Used to refresh action list when it changes.Private ActionUiService As DesignerActionUIService = Nothing'''<summary>''' Initialization
'''</summary>'''<paramname="component"></param>'''<remarks></remarks>PublicOverridesSub Initialize(ByVal component As System.ComponentModel.IComponent)
IfMe.Control Is BorderlessForm Then
HostControl = DirectCast(component, BorderlessForm)
' Give designer access to MenuStrip
EndIf' Acquire a reference to DesignerActionUIService.'Me.ActionUiService = GetService(GetType(DesignerActionUIService))EndSubEndClassEndClass
I have a MS Word fillable form template that has many fields I wold like to have an interactive QR Code to incode three fields [Account Number], [Form Name] and [Date] that once the user fill out the form the QR will capture the data entered and generated like pdf forms.
I have downloaded a free QR Code font but unfortunately, it generate many qr for each character not combine to one.
Is there any work around by useing VBA to combine them to one QR?
By the way I found a built-in QR in MS Word 2013 but I do not know how to use it.
Any suggestions would be appreciated.
Thanks in advance.
I have 80 email addresses separated with comma in a textbox. I also have four empty textboxes. How can I share the 80 email addresses equally among the four textboxes? I have not tried any thing because I no idea on how to start. A sample code can help.
I'm trying to write some code in an Excel macro to allow me to rename files on an SFTP site before downloading them using wininet.dll.
I've managed to get a simple block written that works well against a test server, but it fails when I try to access the actual server I need.
I suspect that it's because this server uses Port 22, not the standard Port 21. But, I can't see how to change that Port address to what I need.
In InternetOpenA, I've tried setting dwAccessType to INTERNET_OPEN_TYPE_PROXY (3) and lpszProxy to ftp=ftp://Proxy1:22 (with my specifics replacing the placeholders). But, no good. InternetConnectA refuses to connect. InternetOpenA works fine and returns a valid handle, but I just can't get a connection.
So, since this code worked on the test server using the defaults, I figure I'm not modifying the Port properly for use on my specific server.
All that being said, my question, I think, is; how do I change the port address in the InternetOpenA function?
Oh, an afterthought - would that this is an SFTP, not FTP, be an issue?
That's what I did. I tried populating nServerPort with my port address, but no good. Then, further searching informed me that nServerPort is not an actual address, but a flag with values 0-5. I tried using 5 and then set up the address in dwService with port 22 specified, but InternetConnectA still returned 0.
Unfortunately, my programming fu is not as up to the task as I would like. I didn't do any error checking as, well, it wasn't returning an error, as best I could tell. It just wasn't making a connection. As far as the code was concerned, it was doing what it was supposed to do.
Of course, this is all assumption on my part. I'll look at the link you provided, see if I can wrangle out an error code and see what it may be.
But, as I said, the code worked fine with an FTP test site - test.rebex.net - using the default port, 21. The server I'm trying to get to works fine with FileZilla, so the site works, but I think the problem is just the port address; especially as I can't find any way to change it.
I'm wondering if, because it's an SFTP server, if that may be causing an issue, too.
Well, I'll see if I can get an error code and go from there.
Based on results when I searched on how to utilize GetLastError, I found that it was not recommended because basic makes a lot of other API calls that will displace the error. So, the suggestion was to use Err.LastDllError.
I did that and got an error of 12002, Time out. So, that seems to verify my presumption that it's the port address setting.
Port 21 is failing, because the server isn't listening to that port - for security reasons - and I'm not successfully changing the port address to 22, the one it is listening to.
So, I guess my bottom line question is, how do I change the port address using InternetConnectionA in wininet.dll? The methods that I tried all failed, so I'm doing something wrong.
Looking at the documentation it appears that you can't, which is pretty damn stupid on Microsoft's part. So I am afraid it looks like you are going to have to find some other way around this, probably by switching to a language like C,C++ or C# which will allow you greater control. However, take a look at SFTP Client Libraries - SFTP.net[^].
I've come across several snippets of code while doing my searches that specify a port address in nServerPort and, they claim, it works for them. Of course, that presumes that everything you see on the internets is accurate and without error.
I mean, it is, right?
But, there must be a way. For example, FileZilla does it, so there is some way to change the ports. Given that the wininet library is for C and VBasic, I figure, if C can do it, VBasic should, too. 'Course, that idea is rapidly sinking into the murk.
I'll look at your link, but C is not an option for me, as far as I know. This code is for an Excel macro as part of a data processing routine and I don't know that Excel macros can use C.
Thanx for your help, though. It's far better than I've gotten from the SQL Server community or MrExcel.
The problem is that we receive files from a client covering a weeklong window of daily files. Unfortunately, whatever automation routine they use saves each daily file with the same name, so each successive file has '_X' where 'X' is an incremental values for each new file past the first appended to the name. That means, I have to manually rename the files, substituting the file's creation date in place of the '_X', download them and then move the originals to an archive folder on the SFTP site.
At the moment, I'm doing it manually with FileZilla, but I'm wanting to automate my end to cut down on manual manipulation. I want to expand on a current Excel macro that is already part of the process to take on this task.
For me, the putty solution might work - looking at the link, I don't see where I define the port address, unless it's just by appending ':22' to pHost. But, I have to make this code accessible to everyone, in case I am out and my backup has to do my task. I don't always know who that would be and they may not have the rights to add putty to their system.
i want to know whether it is possible to program calculation of marks in a a quiz show where 6 teams
participate. once the score button is clicked the core of each team should be shown in descending order of marks. If so how the coding should be. I am a student cum teacher. Now studying VB. Got a project to do so. But there is no way I could find a solution after going through the different sites.
Yes, it's possible. It's not even particularly difficult.
But ... Please don't repost if your question does not appear immediately: all of these went to moderation and required a human being to review them for publication. In order to prevent you being kicked off as a spammer, both had to be accepted, and then I have to clean up the spares. Have a little patience, please!
I've deleted the spare ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
As long as it use logical rules and mathematics, it is possible and with about any programming language.
But for this, you need to learn programming, but we can't teach you in the scope of this forum.
Advice: solve the problem by hand, the procedure you followed is basically your algorithm.
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
Last Visit: 2-Apr-20 10:20 Last Update: 2-Apr-20 10:20