Interface And Graphics :: Rubberband Drawing Using Controls?
Jul 17, 2008
Im using VB 2005 express edition. Im trying to draw rubber band lines and rectangles using controls like buttons in one form. My problem is, i did the rubberband lines and rectangles on diff forms.Here's the snippet code for rubberband rectangle:
Code:
Private Sub MyDrawReversibleRectangle(ByVal p1 As Point, ByVal p2 As Point, ByVal dashed As Boolean)
I am need to drag drop listboxes with connection line in vb.net. If the listbox move then connection line should also move. I have attached picture as wel
drawing text on a window which is not the current form's window.I remember doing this in Win32 api with getwindowdc(handle) to obtain a DC for the Window, then textout() on the DC.
I am drawing a bunch of shapes on a form and I want to relegate some of these to a subroutine other than Form1_Paint().The form has the DoubleBuffered property set to TRUE.All the shapes that are drawn by an external sub get overwritten:Code:
I have several picture boxes on a form (frmMain).My question is, how do I paint a point on a particular picture box at the location specified by the coordinates of the current mouse position? The snippet below shows defining some canvases and pens. But I'm not sure how to capture the mouse position when the mouse is over a particular picture box and how to paint the actual point at that location.[code]
IGraphics and drawing and invalidating thing.I have improved, that I can tell. I won't explain everything, so here's the essential:Technically, my application will let you draw a rectangle on the form. You click, drag, and boom, a red rectangle is there. This rectangle will disappear when you start drawing another.I got that working.But my problem is performance. You see, obviously I have to update, invalidate and paint my rectangle every time the mouse moves while it is in "drawing mode". I do that every time the mouse's position changes.And that is quite a big deal. Every time the mouse's position changes? That's a lot of invalidations and redraws for a decently-sized rectangle!I thought of skipping some mouse movement, like only update every 5 coordinates moved or something. But that would render my goal quite inaccurate.I already invalidate only the regions necessary, that I can tell.
I'm trying to make a custom combobox from scratch that multiple instances will share the listbox that holds the data on. I'm trying to draw the button face manually using GraphicsPaths and pens and brushes, but I'm having a few issues with it:
1. How do you draw that down arrow glyph in a way that doesn't look like a two-year-old sneezed on it? I'm having problems with the shape looking like the traditional one.
2. How do you position the listbox that contains the data in such a way that isn't bound by the containing form's render window?
3. I've tried to make the background look different when it has focus, but the OnPaint seems to think it always has focus and always makes the background the "focused control" background.
Well im just upgrading from VB6 and i was able to paint images to the background of a form. The same method does not seem to work in VB 2008. Is there a way i can draw/paint images to the background of my form?
I'm just getting started, and it's as simple as that: I need guidance to draw a rectangle or place a dot or a point on Form1, in VB 2008 Express. I knew how in VB6 -- let's build on that.
I am drawing a circle, of let's say 300 pixels diameter. I want to draw a triangle, with the top of it being at New Point(diameter / 2, 0). How could I get the other 2 points of the triangle? If possible, how could i get the 3 points of a triangle rotated by x degrees?
Problem1: I have a picturebox on a form. I have also managed to draw several PNG files with transparency onto the picturebox (see below). However, If I move the form outside the border and move it back, the image is gone. My source so far:
Dim k1 As New Bitmap(My.Resources.image1) Dim k2 As New Bitmap(My.Resources.image2) Dim drawMe As Graphics = PictureBox1.CreateGraphics Dim bgcolor As Color = Color.FromArgb(128, 128, 128) drawMe.Clear(bgcolor)
I would like to build a line chart which can redraw or change during a period of time with dynamic data. So that the x, y axis will change if out of range. The graph may be somehow similar to Matlab. I am using vs2005.
I created an application in VS2005 that draws text with a custom font and color. The images look great from my XP machine. But from another machine running Windows Vista, the graphics are messed up. It seems that the transparencies inherit the default black background so there's this gray'ish/black haze around the text...
I'm having a problem with the graphics portion of vb.net. As a school assignment, we are making "turtle graphics" applications. I have mine working perfectly, the problem that we are having (not even the teacher can fix it) is that when the window gets sent the command to be painted (ie minimized and maximized) the drawings in the picturebox I am using are completely erased. I am looking for a way to prevent this from happening. I have been trying to store the image as a bitmap in memory, which does not work. Is there another way to draw to a bitmap/image in memory and then output that to a picturebox?
I know this is probably not going to be simple, I tried searching around, but couldn't find anything. I am using some code to 'draw' text in a custom format to a panel with a custom bitmapped region (custom shape).Here is the code that writes the text inside a specified area:
g = LeftControlPanelV2.Panel1.CreateGraphics Using fnt As New Font(New FontFamily("Arial"), 9, FontStyle.Regular, GraphicsUnit.Point) Dim sf As StringFormat = StringFormat.GenericDefault sf.Trimming = StringTrimming.EllipsisWord
[code]....
Obviously the text is not really located on the panel, but looks like it as it's drawn on top of the panel. So, when the panel or form that the panel is attached to moves, I lose the text. I though I could just call back to writing the text when the panel/form arrives at the correct place, while clunky, it works to a degree. I was hoping there was a better way of doing this, so that the text doesn't disappear when moving controls and I don't have to make repeated calls to the same drawing text over and over and over...
Edit: Should probably add that there will be 5 different panels each with their own custom drawn text, and all 5 need to move at the same time...
I will get an error message. I tried something like
Code: Public ObjectPoint As PointF Dim cpoint As New PointF() cpoint.ObjectPoint = New PointF(startX, startY) e.Graphics.DrawEllipse(Pens.Blue, cpoint.ObjectPoint, 0.4, 0.4)
but it didn't work for the location and the circle size. How to draw a circle(and rectangle) by using floating point numbers?
I'm having some problems with custom controls and anchors today. I made a custom control containing a picture box and a vertical scroll bar. When I adjust the form the custom control outer area (the blank part) will adjust to the size of the form but the picture box and scroll bar do not. I have the picture box anchored to all sides and the vertical scroll bar anchored to the right side. They just will not adjust with the control when it is resized on the form.
I have a project running in my old computer. It has panels,textboxes,labels etc. It occupies the full screen when running.I bought a new computer with a widescreen format. When I run this project it only occupies 2/3 of the screen.
What properties of the controls must I use so that I can run this program in any size computer and still occupy the full screen i.e the size is proportionately resized depending on screen size.
The project I'm working on (the same one I'm always asking about) has tabs as the main navigation. I've made some User Controls to sit above the tabs in an attempt to reduce the number of overall controls that are being used (to great success). Now, however, there's one control that overlaps some controls on a tab that are obscured by my newest UControl and I want to make the background transparent.I've seen that AtmaWeapon keeps pointing people to this page detailing how to make the background transparent. That's great and it worked for me. All I did was create the
Code:Protected Overrides ReadOnly Property CreateParams() AsSystem.Windows.Forms.CreateParamsand it worked the way I wanted. Yay. I did write the rest of it too as well as part from a post I saw on the msdn forums, but they weren't needed to get the effect I wanted.However, I've got a number of PictureBoxes on this UControl that should have a BorderStyle of "Fixed3D". However, when this UControl is repainted the borderstyle doesn't reflect this (Note to self: don't .Refresh() a control inside its own .Paint() event ). This doesn't happen the FIRST time they become visible, but only when they've shown up and are made to redraw (like toggling visibility). If the border changes programmatically they look fine
I'm trying to figure out how to make dragable controls like the ones in paint.net. see the attachment. they look like forms kind of because they have the red x at the top like a form does, but it kind of looks like a custom control too. Is it possible to make these types of controls in VB.Net 2008.
I have a form containing two panels. In both panels there are two labels and textboxes. I set the 'Center In Form' property of the labels and textboxes to 'Horizontally' and 'Vertically' in design time respectively. But as the form is resizable, when the size of the form is increased or decreased at runtime the controls are no longer center aligned in the panels. How can I handle this problem (provided th
If I have a control, in this case a button, can I restrict the area it considers valid for text?
In the attached image, the left and right arrows are custom drawn in the paint even, I also have a scroll timer that scrolls the text if the length exceeds the buttons width as measured by Graphics.MeasureString.
I want to restrict the text from red line to red line so when the text scrolls it does not interfere with the arrow indicators, can the text area be overridden to some custom region?
Problem drawing dotted path lines, with even dots along the path line.I want to draw a path line that can be any shape (square, round, outline etc), and along this path line I want even dots to appear.
I also want to be able to resize the shape (as in the example attached)This is very easy to do using "DrawPath" and defining points for the path and using a pen defined as dots.The problem I have is I want the dots to be evenly placed along the path, on any shape or size I draw.In the example I have created, I create a square with 4 points and draw a dotted path.There are 2 buttons that allows me to resize the square (larger or smaller) this helps show the problem more clearly.
The path starts at the top left corner and finishes back at the top left corner, the dots are evenly placed along the path, except the final dots at the end of the path. (Sometimes the dots are even and other times they are not even).The shapes I want to draw can be any size and any shape, but I have used a square in this example to show the problem I have. point me in the direction I need to go that allows me to draw the dots and give the impression that they are even all along the path, for all shapes and sizes.
In the pictures below if you change the size of the shape, one will have even looking dots, the other will not.
I'm developing a VB.Net 2008 application which uses background images (in jpg format) in some forms and controls, but this makes the application to use a lot of ram. My question is how to make it to use the less possible.
I am using Visual Web Developer 2008 Express and making a Webform. I want to arrange my labels and drop down listboxes in a table to keep them together on the form in a neatly manner. If I use the 'ToolBox' on the side and drag a HTML table to the workspace I get a nicely formatted table with 3 rows and 3 columns. And I can drag and drop my labels/listboxes into these columns and all is fine and good.
If I use the 'ToolBox' and drag a ASP.Net table to the workspace it starts as just a boarder with '###' inside of it, which I cannot drap and drop controls into. I'm not sure how to place controls into it. I figured out that you can add the Rows - then Columns in the properties window, but that just adds more cells which have the '###' in them. I can make it work with the HTML table, but I just want to know if I can do the same with the ASP.net table.
I have a Main form that has a split container in it. In Panel1 there is a treeview control. Panel2 is initally blank when Main loads. Upon clicking on one of the nodes in the treeview a form will load in panel2 and adjust the location of the controls based on the size of panel2. The controls are all in a panel themselves so that I am only moving a single object.
Moving the controls when the form in panel2 initially loads works great. But if the size of the Main for changes then the only way to get the controls to reposition is to click on the treeview and reload the form in panel 2.Code for the tree.
Code: Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick Me.SplitContainer1.Panel2.Controls.Clear()
[code]....
I tried to with code in the panel2_resize bit i got an error as soon as I clicked on the treeview as i did not know which form was currently loaded. What would be a method to accomplish repositioning the controls in panel2 regardless of which form is loaded?
I'm making a custom class that mocks the System.Drawing.Rectangle class because the Rectangle class doesn't have a name property. I need a name property because I am adding all of my rectangles to a collection and I need a little more info stored than just their locale and size. So I changed the _onPaint event but nothing is working out when I run the program?
Public Class Rectanglar : Inherits UserControl Public BackgroundColor As Color = Color.Blue Public Sub New(ByVal name As String, ByVal XY As Point, ByVal Widthy As Integer, ByVal Heighty As Integer)
we all know how to dock or anchor controls so that they resize themselves accordingly when a form is resized. It works fine till we have rows of controls on left and right size of the form. But what if have three columns (Columns as in visual sense. I'm not talking about any column control containing other controls) of controls? For example a form having a bunch of controls in the left side, a bunch in the middle and a bunch in the right. There may be a few more bunches in the middle. Now while resizing the form, I want the controls to resize accordingly as well as change their positions to make space for the previous bunch of controls that are resizing.I mean, while the user increases the form size horizontally, the controls of the second bunch should resize and at the same time they should move right because the controls of the first bunch are increasing horizontally too. When the user decreases the form size horizontally the same thing should occur in the reverse order.I can manage it somehow using nested splitcontainers but that's too cumbersome. I would like to know if there's some better way to achieve it, like setting some property etc.?