I call Me.Invalidate() in the property setter of a custom control (inherits from ProgressBar) but it only causes the control to paint on screen about 1 in every 10 times (or less) whereas there are far more times that the code enters the painting routines (i.e. only on some occassions do the painting routines cause on screen changes). I am using my own Painting routines, not using ProgressBarRenderer.
On the Inherited ProgressBar I set Minimum to 0 and Maximum to 1000 and use a timer to increment Value by 1 on each tick (100ms). Therefore Me.Invalidate() should be called after every tick and hence the 'progress' of the bar should be quite smooth - 1000 small increments as it fills the bar should be pretty small changes and hence appear fairly smooth.
However, what happens is that the control only changes on screen about 1 in 10 of the times that Value changes. The control also writes the progress as a % (integer) onto its surface and each change in the % text is accompanied by an increase in the visual progress. I think this apparent synchronisation is coincidence though, since using Console.WriteLine I can see many many calls to the Painting routine but a few of them actually cause a visual change on screen.
I have tried slowing the timer down to 1000ms but this hasn't changed anything other than there are far more than 10 calls to the painting routines between actual on screen changes.
I am using PointF, RectangleF and SizeF to avoid 'rounding errors' and hence blocky progress from using the Integer versions of those structures.
There's some stuff from the Output window (using Console.Writeline) near the bottom of this post that shows that at the beginning there is 1 OnPaint per Invalidate. Later on (somewhere around 1% and 5% progress) it changes to having several OnPaint calls between Invalidates. So I certainly don't appear to be short on calls to OnPaint. I only appear to be short of actual OnScreen changes.
The Painting routines use the RectangleF structures to create GraphicsPath objects, which are used to create a Region that is then filled by e.Graphics.FillRegion.
Possibilities I can think of:
1) The painting events are too frequent to allow screen udpating, but this doesn't seem likely since 1000ms timer ticks didn't help
2) GraphicsPath and / or Region objects aren't 'precise' and hence a range of similarly sized RectangleF objects create essentially identical GraphicsPath objects (or the same problem when moving from GraphicsPath to Region)
3) Erm, not sure...
Here's the Setter code:
Public Shadows Property Value As Integer
Get
Value = MyBase.Value
In VS2005, I noticed that when you go from the code window to the form window, the form immediately appears, but then redraws again, and takes about 4-5 seconds to come back. Is there any way around this annoyance? Has it been fixed in VS2008? In general, has anyone noticed any speed improvements in the development environment between VS2005 and VS2008?
I have a issue with my DataGridView. It's bound to a DataTable at form load. I have a sub wich handles data recieved from a serialport. Inside that sub I'm adding a row to my datatable. That works fine, but to make the row visible in my datagridview, I have to either click on the row, resize the form so that the DGV dissapears and then appears again, manually call DataGridView.refresh or something like that. Why isn't the DataGridView automatically redrawn when a row is added inside a sub like that? One solution is to add a timer where DataGridView.refresh is executed every second, but it doesn't seem like a good idea
I am creating an application that is drawing different types of lines in a Panel called Panel1 and realized that everytime I call Panel1.Invalidate() alll the lines that are currently drawn on the display during runtime are cleared then redrawn every time.Is there anyway to generate a PaintEvent without calling an InValidate?
I'm having trouble with a football program that I'm writing. I'm finding that there is a lot of flicker coming from the program having to redrawn 36 (Australian football) small circles with numbers in them about 10 times per second (or even more) as the players move.I'm just using basic e.graphics. fillellipse.code in the Paint section of the form. I then use me.invalidate on the timer's tick routine.I haven't touched this graphical stuff for a while and I vaguely remember there being some ways to help this. There are also things like the ground which I'd like to not have redrawn because they don't have to as they don't move. I remember that you can do this but I don't remember how.
I have the following VB.NET code to set and read objects in cache on a per user basis (i.e. a bit like session)
Public Shared Sub CacheSet(ByVal Key As String, ByVal Value As Object) Dim userID As String = HttpContext.Current.User.Identity.Name HttpContext.Current.Cache(Key & "_" & userID) = Value End Sub
[Code]....
I use these functions to hold user data that I don't want to access the DB for all the time. However, when the data is updated, I want the cached item to be removed so it get created again.
How do I make an Item I set disappear or set it to NOTHING or NULL?
I have adopted a technique where I pass existing objects to forms so that they can display the object's content and allow the user to alter it if necessary. The form is not bound to the object, so when it comes time to act, the form sweeps up the content of its controls and puts them into the object. The object is then validated and any issues reported to the user. If the object is valid, it may be handed back to the caller so the caller can refresh a view/list/etc.
So far, so good. However, if the form's content, or lack of, creates an invalid object and the user does not correct it, maybe cancelling the form, there's a chance the form will hand an invalid object back to the caller. This is not good.
Essentially I'm looking for an elegant and efficient way of either leaving the object as it was or rolling back if the user cancels the form/action.
I have considered a range of techniques, each with many pros and cons. I'm keen to consider some other views.
To refresh or invalidate only a region of the form.sometimes I will need refresh all the form, but in some situations only specific regions of the form..I saw some samples on the Microsft site, but I don't understood.I use VB .net 2008
Here's my situation: I have a control with motion graphics (for the sake of simplicity, a 'video player' control) in my project. Think of a PictureBox with constantly-changing images. In front of this will sit a second control (such as a second PictureBox of the same dimensions). The topmost PictureBox will be drawn to in its Paint event.
I need to draw very few elements, and the bottom control is updated much more frequently than I need for this drawing. So these elements are drawn to the topmost control. Think of a news broadcast, where they have live video in the background, with a news channel logo, news ticker, and sometimes gradient visible in front.
I'm trying to create that 'foreground' control, and the closest I believe I have gotten so far is the following:
The 'Opacity' property in the code above is a sort of "scaling factor." The image drawn to the top control may, in different parts of the image, have any alpha value from full transparent to a full 255. This 'Opacity' property is applied to the entire image being drawn, scaling the alpha values of each pixel.
Im doing a mini project and i need to display an image in picture box control when a cell clicked in datagrid view control .the image is linked through the database ms access and im using vb.net frame work.
I have a requirement for a new application development where I must present some information to the user for selection via drag and drop. VB offers the TreeView control which would work nice, however the user does not like the Treeview control's presentation. The user wants a control that work similar to the Mac's Finder control while in column view.
Apple's Mac Finder Control works similar to window's treeview. Finder has a nifty view capability that my users would like in some new development that is being done. The finder supports a "column" view. Similar to the treeview, it starts out in a root list. The difference being, when a user makes a selection and clicks on a node, the node doesn't expand, the sub nodes appear on the pane to the right of the list. Clicking on a sub node, will cause the pane to split again and the items within that sub node appear to the right again.
This will happen again and again with the left pane getting narrower as the user drives deeper into the sub nodes. That is what I am trying to replicate. Obviously, once the user reaches the base list of items, we have to support drag and drop capability. Does anyone know of a control for VB.NET that work similar to the Mac's Finder control?
I am upgrading user control from vb6 to vb.net.In the vb6 application I am loading 3000 labels using a label control array.In vb.net I am doing same but it's taking too much time to load.In vb6 it's taking 1-2 seconds, but in vb.net it's taking 30-40 seconds for same work. Why does it take too much time in vb.net for same work?Code is given below, here Led is the label control array.
For l = 1 To 3000 Led.Load(ledCounter) ColLed.Add(Led(ledCounter))
I have a UserControl that contains other controls that I would like to be able to rearrange or resize at design time. So I have a custom designer for the UserControl that inherits from System.Windows.Forms.Design.ParentControlDesigner, and I call EnableDesignMode on the child controls from within the designer. That way, at design time, I can drag and drop the child controls to move them, or resize them. But I can also drag and drop the child controls somewhere else on the form that is outside of the original UserControl. Is there a way I can limit the child controls from being moved or resized outside the UserControl?
I've created my own ascx control with button inside it. Now I'm using this control inside other control. (In my case it is a webpart). What I would like to do is program button.click logic from my custom control inside webpart
I am trying to use the Web Browser control in my vb .net user control. I am using VS 2008. Finally, I will be calling my assembly (.dll) from a web page. I wanted to display the usercontrol with the web browser control inside this web page. The problem is I cannot proceed since the Web browser control cannot be called from a partially trusted assembly. Using VS 2008 I have created a strong name for my class, also added the <Assembly: AllowPartiallyTrustedCallers()> to the AssemblyInfo. But still the web browser control cannot be seen in my web page. Do you how I can make my assembly fully trusted so that it can access web browser control? If you have used web browser control, can you confirm if this step is really required?!
I am in the process of designing a computer control program to control a HF communications receiver (radio), and have found a problem with the Serial port. I am using VB Express Edition 2008. This module of the program is supposed to take an input string from another part of the program, format it, break it into 4 bytes, and send it to the radio in hex form via COM port 1. The problem comes in when you try to enter a frequency with an 8 or a 9 in it. The 8 or 9 is usually replaced by 45, ex.-input 9900, receiver tune 4545. The exact same thing happens with 8's, input 8800 and receiver tune 4545. All other numbers other than 8 or 9 work fine. The strange part of it is that sometimes the 8's and 9's work, and work correctly. For instance, 900, 1900, 2900, 3900, 4900, 5900, 6900, and 7900 all work correctly. This led me to believe that is may only be when the 8 or 9 is in the first position, but that is not the case, it also shows up in other positions as well. All other frequencies that do not have 8 or 9 in them also work. I ran into this same problem with VB Express 2005, and worked on it for weeks before giving up and going back to VB6.0. This same module (with exception of the port open command) runs flawlessly under VB6. I have even tried importing the MSCOMM control from VB6, but it gives the same results. In de-bugging mode, all of the inputs, decimal and hex seem to be correct, so the problem must come in after you click the command button, but before it leaves the COM port.
I would like to be able to set Control visual properties such as color, boarder, flat style, etc. on the base class of the control so that as I add new instances of the control, each instance inherits the visual properties of the base. I have tried using Application Settings but it appears as though I need to reference an application setting manually each time I add the control to a form. This is a Windows Form question.
I Need Build a user control which works as a Login control using Windows Class Library or Component Template:The user control returns the user name and the password It means that the control has minimum two ReadOnly Property procedures. You let the user of your control (he/she which uses your control in his/her software) to set the background colour of the two labels. Create a Windows application to test your control.
The following code works perfectly to allow moving a control on a form at run-time. However, when AutoScroll is set to True on Form1, and you drag Button1 past the right and/or bottom bounds of the form, it goes haywire. I really need someway to smoothing control the autoscroll so that as you scroll the control off the form, the scrollbars smoothly appear.
I'm writing some VB2008 code to control four 7-seg LEDs I bought from Velleman. They came with some example code in VB 5.0, and with instructions telling me to input 5 bytes at a time in the format Chr$() & Chr$() & etc. for the rest of the 5 bytes. When I try to do this using VB2008, it rejects the $ sign, so I've tried it using the Chr() format, which VB2008 allows. However, it doesn't work. Is Chr() the new version of Chr$() or are they different entities? In sending data to the LEDs, I'm using LiveComPort.WriteLine() as my command. (My serial port is called LiveComPort) I also tried it with LiveComPort.Write() asthe command. I know that my serial port and the LEDs are working, because they respond to the demo program provided by Velleman.
I have been able to associate a listview control with an imageview control to display images. There are a couple of things, I would like to do.
1> How do I display the image in the second column? 2> How do I increase the size of the image getting displayed? My images are all 48 x 48 (pixels), but they keep shrinking.
I'm trying to make a program with transparent labels over pictureboxes and when I set the label Parent to the PictureBox the position of the label changes.
I am still messing around with Cntrl/Copy and Paste from a menustrip. Paste is working fine. The copy is working to a certain extent. It will copy the complete text field from one control to another. how do I determine what is the selected text only. My code below:
Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CopyToolStripMenuItem.Click Dim activeChild As Form = Me.ActiveMdiChild ' Determine the active child form. Dim activeControl As Control = activeChild.ActiveControl
I tried it and get an error but maybe I'm tring the wrong way. Can a usercontrol inherate an application defined class ie.. could you inheritance a classic rect class into a user control to add the hight and width properties to the control without having to do all the coding all over again? Currently I just declair a private instance of the class within the control and then encapsalate. It would be nice if I could just inherit all the functionality of my classes into controls designed to implament the classes.
i frequently have troubles with the dock property. it seems that either the order of creation or adding to the parent control determines whether or not a control's dock property supersedes another's. e.g. a control with the dockstyle fill will overlap with another docked control on the same parent. does anyone know what the rules are to determine how docking will behave; particularly in dynamically created GUIs?
I am wondering if anyone has any idea how to make the controls stack and fill up the available space left by a control if the control is hidden or removed from the UltraGridBagLayoutPanel.
If I hide [Textbox 3] as of now, it will disperse the space left equally and pad the remaining text boxes with the space. However, I would like it to do this...
[Textbox 1] [Textbox 2] [Textbox 4] [Textbox 5]
Where all the text boxes will move up and [Textbox 4] will completely consume the space left by [Textbox 3].
1. when i pick a value from a combo in next col of data grid which also have a combo should populate conditionally.
2.when i edit the cell having combo previous selected value is overwritten by first value of combo it should be if i select any value from combo but should not over written default as i click the cell. (edit mode is on click)
3.by pressing enter key cursor should jump to next cell in same row . means navigation should horizontally but should jump to first cell of next row if cell is last cell
I have an asp.net usercontrol which represents a "popup" dialog. Basically, it's a wrapper for the jQuery UI dialog which can be subclassed to easily make dialogs. As part of this control, I need to inject a div into the page the control is used on, either at the very top or very bottom of the form so that when the popup is instantiated, it's parent is changed to this div. This allows "nested" popups without the child popup being trapped inside the parent popup.
The trouble is, I can't find a safe way to inject this div into the page. A usercontrol doesn't have a preinit event, so I can't do it there, and calling Page.Form.Controls.Add(...) in Init, Load or PreRender causes the standard exception "The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases."
I thought I had found a solution by using. ScriptManager.RegisterClientScriptBlock(Page, Me.GetType, UniqueID + "_Dialog_Div", containerDiv, False) which seemed to work well normally, but recently a coworker tried putting an UpdatePanel inside the dialog and now she's getting the error "The script tag registered for type 'ASP.controls_order_viewzips_ascx' and key 'ctl00$ContentBody$OViewZips_Dialog_Div' has invalid characters outside of the script tags: . Only properly formatted script tags can be registered."
How are you supposed to add controls to the pages control collection from inside a user control?