I would like to expand my knowledge of VB.NET and was looking at creating custom user interfaces or custom controls. The type of things I am thinking of is: [URL]s. How are those controls created? I imagine it involves using the existing controls in Visual Studio as a starting point, and altering them to suit your design?
How to properly create custom controls containing populated lists?For example: I need a combobox control which contains a list of products, then I would reuse this control in other project.
[Code]...
and it works but when I run the project each item is duplicated - this is because list is populated twice. First when user add a control to form, second by designer when project is started.I already found a solution to prevent adding items in edit mode, but this is not what I need. I would like to have them existing in edit mode so they could be edited at this point.
Our shop primarily use "ADO objects" (I'm referring to DataSet, DataTable, and DataRow) for marshaling around data and manipulating it on forms and in grids. We are experimenting with creating shop-flavored counterparts to the native ADO objects so that we can impose our in-house standards on top of them. Implementing this is straightforward with one exception: I want our objects to be bindable to controls.
I'm aware of IList, IBindingList, BindingSource, etc. and have looked at and experimented with these, but I am falling short when it comes to making a class with no hard property names bindable. The native ADO objects are not strongly typed by default. You have column values that you access via the Item property (e.g. row("Age") or row.Item("Age")). The binding examples I've found online deal with strong-typed objects (e.g. row.Age). Essentially, we want to create custom ADO objects (not inherited from the native ones) that still retain their ability to bind to controls. In a grid I would expect to see columns Name, Age and Occupation from a row where these properties are exposed via row("Name"), row("Age") and row("Occupation"). This must be doable as this is exactly what the native DataTable and DataRow provide.
This is what I would like to achieve:To create a custom messagebox, with varying number of buttons with custom .Text descriptions, and other features. I intended to have a property array that would be redim-ed and have values (.Text values) set by the calling class:
how to specify a custom icon for display in the toolbox window when you create your own custom control? Something other than the dreaded "gearbox" icon.
With VB.net, I'm coding a simple application to get more used to the new .Net format.
I'd like to save all the information to a 'new' database file. how to create a database on the fly, once that is done i'll be able to connect to it no problem, but actually creating the file is proving difficult to work/find out.
Also, with vb.net and the newly created custom file, how can it be made to automatically open that information with the program?
Is there a method in installation to associate the file type with the new program? How can i check when the program loads if a database file has been 'double-clicked' (rather than just running from the .exe of the program) and proceed to load the data?
EDIT1 - Extra InfoThe windows application has many different fields and content etc, then i need to save that to a file that could later be loaded by 'double clicking'. I assumed the easiest way would be to create a mini-database for each unique file
in VB.NET i have 2 custom controls, one is a TextBox and second one is a ComboBox.These have custom values like Bool _IsHidden and are added on runtime to a form.Now, at some point in the code I want to check if the _IsHidden is set to True or False and display that information. Since the user can edit this values when creating the control these are not set on creation.
So what I tried is:(all of this is on MDI Forms)
For Each frm as CustomForm in Main.MdiChildren If frm.MyName = calledBy Then 'this part is just to know which form called the form to create the object For Each cntrl as CustomTextBox in frm.Controls'DO Something Next End if Next
Now.. if the first control is a custom ComboBox it thorws an error since it sees that it does not match the custom TextBox control..how do i get around this? By my understanding it should just go through all of the controls on the said form and just check those who match CustomTextBox control ?
I've created custom buttons in a .dll and they work fine, so I thought I'd have a go at creating my own sort of listbox to replace the standard one in my applications. It's basically a panel with a few labels and a button (eliminating the need to select an item in standard listbox then click a seperate button). I want to add these panels to a panel on a form, at run-time, based on rows in a db.
If I try adding any arguments in the New() section of the class file it won't let me use the panel in my toolbox. Is there a way to pass arguments to custom controls, I need a new custom panel for each row in a db so need to pass an id to it to specify records; or even load the records in my application and create a new panel for each record, using info passed to it to fill in the labels on it. Or can I create the panel at run-time and refer to labels within the custom controls, setting their .text properties that way?
I'm not going to post my code for my transparentlistbox class, but here is a link to it.It's been working fine as is, until early this morning when I tried to set a different size.[URl]..For the longest time I placed a normal listbox control on a form and resized that, setting a new public variable of transparentlistbox to the same size/location as the original listbox, setting the visibility of the original to false, and adding the transparentlistbox to the form (me.controls.add).It looked like this:
[Code]...
Now, since I've moved some buttons around on my main form, I resized the original listbox control to be wider (same height though). When I tested, the transparentlistbox (code didn't change still set to original listbox size/location), the size was that of what I had the original listbox set to, before resizing?
So, I commented out all of the custom drawing/paint events/etc I could find for the transparentlistbox and tested, still stuck to the original size. I stepped line by line debugging and verified that transparentlistbox1.size=listbox1.size indeed matched the new resized size (but didn't actually resize)?
Last I did was comment out the transparentlistbox.visible and put back the listbox1.visible and listbox1 does indeed show with the new resized size? I'm not quite sure what to test next?
Is it possible to have a custom control (inherits from Control) and add sub-controls to it (like, a label for example)? Basically I want a composite control. I know controls can contain other controls, but if I try to add a control to MyBase.Controls, this doesn't work because that's readonly.
inherit from two classes in VB.net?We are developing Custom User Controls that inherits from say System.Web.UI.WebControls.Label. We are planning on implementing a bunch of these controls but they will share mostly the same additional properties. We are hopeful about centralising these properties.I have looked into interfaces but it seems they only 'contract' properties you need to implement.
I've been working on a few large custom controls, and I noticed that when I use them, my memory starts ballooning. If I add a control at runtime, it increases the memory, but when I remove the control, it decreases less than it increased. However, it would stop balooning at some higher value. So if go back in forth between pages (which adds and removes the control), the memory would look something like this:
1,000K|5,000K|4,000K|9,000K|8,000K... 20,000K|25,000K|21,000K|25,000K|21,000K|25,000K... etc I know it takes a while for the GC to run, but the memory would stay consistantly high for long periods of time.
I tried writing a Closing routine, where when I called it, the control looped trhough its children and disposed all the internal controls, which seemed to help a little, but the memory after running the control and disposing was still much higher than before running the control. I also use custom event addhandlers. Should I remove all these as well. It would be nice if I received a little guidance on this.
I am new to VB 2008 having spent most of my time in 2003. What is the recommendation for the best place to get a primer on creating custom controls in VB.NET. I prefer to use VB directly and not the WPF.
I have a custom control I'm creating. When I click on it, it draws a dotted border and puts some nubs on it for resizing. This all works perfectly. Now I want it so when I click off of it, it deselects. I already have a variable to set up if it's selected or not and subs to draw/clear it. I just have to be able to detect when something else is selected or it gets clicked off of.
What I've Tried
My first and best solution to this was to use the LostFocus event, but, by custom control apparently won't let it fire. After some research, as far as I know, custom controls don't have Focus events because they are custom and could be changed (basically, you have to implement the focus events yourself).
My Question
Does anybody have a solution to either implement the focus events or a way to handle off clicking for custom controls?
Sources
Here is my controls current source:
Imports System.Drawing.Drawing2D Public Class wDOMElement Inherits Control
I am getting this annoying warning message "Object reference not set to an instance of an object." all the time because I created several custom user controls and drag it to a Windows form in a vb.net Windows application. I am using vs 2005 and dot.net framework v 2.0. This message pop up when I try to save the projector when I try to debug it in the Design mode.
Is this possible? Must be surely but I've tried and come up short. I've created a very basic class (person) with 2 public properties, forename, surname. My user control is databound to this class and has 2 textboxes to store the properties.
I've built the control and can add the user control to a windows form but how can I add to a new user control (Staff) which will show my 2 existing textboxes and I can add dateJoined datepicker also??
I have created a customised checkbox control (only the text and border appearance has been modified), and wanted to loop through them in a User quizto see which have been checked and are correct. I have used the Tag property (set to 1 or 0) to identify incorrect answers, and tried to loop through with the following code:For Each thing As GMAW.MyCheckBox In currentParent.ActiveMdiChild.Controls
I got a third party control from a website after googling.Inorder to use that control, I simply right-clicked the Toolbox and selected "Choose Item". Then Browse to that dll file location and selected that file.Now it is added to the toolbox. But do I have to register the dll now ? Or, will it work when I distribute my app ?
I got this whole thing pretty well down (it's actually quite easy), but I've seen custom controls created where you can click that little arrow on the top-right corner and add things or change things about it.
How exactly is this done? I'd Google it (which is why you don't see me post here too often) but I really don't know how to describe it.
I currently do all development work in VB.NET 2008, winforms; but within 18 months will be switching to WPF (for better or worse). I have had great success using Matthew MacDonald's "Pro NET 2.0 Windows Forms and Custom Controls in VB 2005" book. This is an excellent reference focused entirely on the development of custom controls in windows forms. ( Many of the controls that I use have to have a very specific UI look and feel, so they end up being custom.
I'm looking for pretty much the exact same thing, except focused on WPF. MacDonald has a new book coming out on WPF in general ,but not on custom controls. Books are my preferred reference material, but any good web references.
I am trying to learn how to create Windows Forms custom controls in VB.Net by creating a .Net version of an old control I created in VB6. On this control, I have a UserControl with a Label (lblCaption), and several of the properties I add to the control should be passed to the label.This is the code I tried for the ForeColor property:
Code: Protected mcolForeColor As Color = Color.FromKnownColor(KnownColor.ButtonHighlight) Public Overrides Property ForeColor() As Color Get
[code]....
When I change the ForeColor on the control in my test project, lblCaption does change to the color I selected; however, when I run the application, the label changes back to the default (button highlight) color, and the value of the property is also reverted back when I return to the form designer.What would be the proper way to implement the ForeColor property on a custom control?
For some reason one of my controls produces the following excecption error when adding to the VS ToolBox:Request for the permission of type System.Security.Permissions.SecurityPermissions, mscorlib, Verion=2.0.0.0, Culture=neutral etcWe have identified it is this class within the Custom Control but we not sure whyit is erroring