I'm looking for a control, like a label, that will have comparable properties to the RectangleShape Component in Visual Studio. And I suppose I should also pose the question: are Visual Basic PowerPacks like the RectangleShape really relevant anymore?
I know it may seem silly, and will not affect the application at runtime, and I may seem like a pampered whiner, but I find the the shape components to be a real nuisance in the layout process. I feel like I'm using an out-dated control. And I particularly find the inability to multi-select regular controls and shape components at the same time most annoying.
Specifically here is what I'm tying to accomplish:
I have been tasked with rewriting an old VB6 program in VB.NET and am constrained to keep the visuals the same as what people are used to.
In the form above, I need a DiagonalCross pattern behind some text, and I have not found anything that will accomplish the same thing as the RectangleShape component. The FillStyle property only seems to be available in shape components.
For the moment I have resorted to putting all the Shapes and Controls in a Panel, so I can at least move them at the same time, but it is still a little weird to try to adjust the layout within the panel.
I'm hoping there is some way to have the same visual effect in something like a label.
And I suppose I should clarify, I'm looking to find a definitive replacement for the Rectangle Shape component.
I know it may be a silly inquiry, and that the solution may be more difficult than the issue, but I thought I would ask and make sure I'm not missing something easier to replace shapes in the layout process.
I'll greatly appreciate any input. Thanks!
Related
I have what should be a fairly straightforward question regarding libre impress. I want to make several buttons to jump around the document and I would also like these buttons to indicate that they have been clicked before.
To achieve this I used simple shapes (stars in my case) and added an interaction feature to jump to the desired location. So far so simple. In order to indicate that a button has been clicked before, I thought the easiest way would be to change transparency, colour or size of the shapes. Really any of those would be fine for me. I thought this could be done with a macro. My problems are the following:
I don't know how to write the macro. I have a rudimentary understanding of scripting (mostly Python) but not with this particular language.
I don't seem to be able to attach two interactions to one object (i.e. one for the jumping and one one for the macro to change the appearance).
I hope that there is a simple solution to this. Thanks in advance!
The tag is for Basic, so I'll go with that. However, LibreOffice macros can also be written in Python. To get started with Python macros, use APSO and check out this tutorial.
Anyway, here is some Basic code for Impress to point you in the right direction.
oDoc = ThisComponent
oDrawPage = oDoc.getDrawPages().getByIndex(0)
oShape = oDrawPage.getByIndex(0)
mri(oShape)
MsgBox(oShape.getControl().Label)
Whether you decide on Basic or Python, get the MRI extension in order to discover UNO properties of an object. This way you can find out how to change the button.
When you have some code, post another question or edit this one that shows the code you have so far, and describe problems you encountered.
Currently I would like to program an application gathering forms that are callable with buttons on the side. For this, I am using the latest build of Visual Studio Community. One way I thought of would be to literally put all the form elements (textboxes, lists, etc.) in the application window and only enable them whenever the according button is clicked on. However, if this is the way to do it, I find it quite messy and unpractical, and I'm pretty sure there's another way around.
After some research, I have learned about the MDI layouts, but they don't suit my taste. I would like to keep everything in one single frame.
Could you give me a hand?
EDIT: I realized that I didn't tag this properly - I should have included vb.net as a tag, on the grounds that there could be a code based solution. Note, that no changes to the resolution are made in my source code.
UPDATE: When the program starts execution, the left coordinate for each PictureBox is multiplied by ~0.376, whilst the top coordinate for each PictureBox.Top is multiplied by ~0.418 . This "down-scaling" applies to all picture boxes. The source code I have is incredibly rudimentary and cannot be responsible for this. I also looked at another project and I still face the same error. A simple but poor fix would be to divide each coordinate by the corresponding values mentioned above.
In order to show you the issue I'm facing, please look at the images below. Compare this image, where each PictureBox (i.e. a snake, set of arrows, etc.) has been placed so that they line up with a feature of the background image:
To this image, where the PictureBox elements are bunched together. Their positions have been "down-scaled" closer to the origin of the form (note that all the elements are transforming horizontally during runtime, which is why the elements are in the top right corner):
In the solution I was given (developed in VS 2010 I believe), the position of each PictureBox goes beyond the background image as shown:
It is clear that each picture box has been placed in an organized fashion. During execution, each PictureBox goes to it's intended position (i.e. lines up appropriately with the background image).
Obviously, the original developer of the solution I was given would have not faced the problem I am. The fact that the solution works properly during runtime indicates some kind of error with my instance(s) of VB. Does anyone know of any solutions?
I've came across this question which asks how to change the default resolution for a Windows 8 App and this question which asks why some applications appear differently on different machines, but they pose no clear solutions. I would appreciate any help, since it's holding me back from critical work I must do. Thank you in advance!
I feel a little silly now - I started carrying out a bit more research on VB forms and came came across this Microsoft documentation on form scaling. Realizing that my issue may have been caused by having this scaling automatically carried out, I then found the AutoScaleMode property of my form and changed it from Font to None, which resolved my problem.
Essentially I want to re-size my dateTimePicker control to fit its parent container. I have tried to do this both through the Control Editor and programmatically but I simply cannot get the drop down calendar to expand at all. So 2 part question:
a) Is this even possible to do?
b) Is there an easy-to-implement solution to having a good looking calendar that fits its parent field? (i.e. using a data grid or something similar)
Any help or knowledge is greatly appreciated!!!
The size of both objects is fixed and defined by the size of its font. Thus you might change its size by affecting the font size. This works fine with DateTimePicker but does not seem to work with MonthCalendar. After a quick research I have found a pretty curious recommendation on the MSDN forum: "you can consider third party MonthCalendar controls to meet your requirement temporarily".
There are quite a few third-party options (after a really quick search I found this) or you might even create one by your own. I personally haven't ever had any problem with the in-built controls but if the size is so important for you I guess that you would have to search/develop something by your own.
Further recommendation: rely on WPF which does contain a resizable control (DatePicker). I want to highlight here that I don't like WPF at all and that thus this recommendation is because I don't see any other option (inside .NET).
For months now, I have been trying to solve a problem regarding rendering images properly onto Aero glass. From what I have gathered so far, to do this you need to render the graphics object as a bitmap, because the Aero requires an alpha channel. To be more specific, what I am trying to do is make a perfect, non-flicker text box ( and other controls). I do not want to fall back to rendering part of the form aero, as I may want more than one text box. Also, the DrawToBitmap function works, but is far too slow, which is why I want to accomplish this with BitBlt.
What I have right now, is the Graphics control of a TextBox, stored as a IntPtr. How do I take this graphics control, load it into a Bitmap, and draw that Bitmap with BitBlt? (or as the link suggests, fixing the alpha value of the Graphics object)
So my question is, is there anyway to do this with Visual Basic 2010 .NET?
If anyone can answer this question, provide input, or a equivalent alternative, I'd be very grateful.
Here is a link to a previous thread I have made, which describes the problem in much more detail:
http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvb/thread/f0e9fa0c-9535-4cdb-826f-673ef58c408a
Best regards,
Jake M.
P. S.
This link has helped greatly, and addresses my problem. However the solution on the very last post seems to be what I am looking for, however I have no idea how to convert that into visual basic.
Aero: How to draw solid (opaque) colors on glass?