VS 2010 Properties Set During Design-time Are Not Serialized To Designer File
Aug 22, 2011
I am creating a UserControl with rich design-time support that should eventually look like the Options window in Visual Studio (or many other applications). Basically a split container, to the left is a TreeView with 'option categories', and each node in the treeview corresponds to a 'panel' to the right with certain options.
Just for terminology, the nodes in the TreeView are OptionsNode objects, the panels (containing the controls that determine the options) are OptionsPanel controls. My UserControl itself is called OptionsView and is the control that contains the treeview as well as a panel that contains the OptionsPanels.
I have some experience in design-time coding, and I have gotten pretty far. The OptionsView control contains a property Panels that returns the ControlCollection of the right side of the split container. The user can add/remove OptionsPanels via this property (and automatically an OptionsNode is created). The property uses a custom CollectionEditor that tells the designer to create instances of type OptionsPanel (instead of just Control which is the usual collection type of ControlCollection). Furthermore, in the CreateInstance method I use the DesignerHost object and its CreateComponent method to create the panels, instead of just creating New OptionsPanel objects. This way the OptionsPanel created is selectable and editable (via property grid) during design-time:
vb.net
Protected Overrides Function CreateInstance(ByVal itemType As System.Type) As Object
If itemType Is GetType(OptionsPanel) Then
i have created my own custom propertythe property is of type collection ,it displays a form which allow the user to add a list of images and strings,it stores the data in a collection ,my problem is , i have noticed that after adding items to the collection at design time , there is no code generated in the .Designer file of the form and there for when i close the for / save it and reload it , all the items that i added to my custom property are gone.my question , what did i miss here ? how do i make my custom property generate code at the .designer file for the items i have added to my property?
I'm making a control and I am trying to finalize my design time properties grid. I have several List(of Class) items as public properties and when I click on the design time menu (while testing the control) there is the word "Collection" and a button with an ellipsis (...) that brings up a neat pop up with the buttons Add/remove and all of the public properties of the collection's class on the right hand side. Basically for a non-collection instance of a class (with public properties) I'd like a similar button to show up. I know I could put all of the properties in the main control class and group them, but I like the pop up box feature. Anyway to duplicate this? (think font grid item etc.)
In the form design I set up a TableLayoutPanel, 20x20 cells and in cell (1,1) a PictureBox (called Target) containing the image of a small target. The properties box for Target shows some very promising properties, Column and Row - and if you overwrite the values in the properties box, the PictureBox obligingly shifts to the corresponding cell position in th design. However in VB it is not possible to refer to Me.Target.Row or .Column - neither appears during coding in the menu of properties, and deliberately coding either of them produces an error like
Error 1 'row' is not a member of 'System.Windows.Forms.PictureBox'.
1. Why does the properties box show properties that cannot be altered programmatically?
2. How can my program move Target around in the TableLayoutPanel?
Basically, in the designer I want to be able to connect a collection of objects to another property. When the collection is set, the property should display a drop-down allowing you to select one of the values from the collection. It is a collection of a custom class.Right now I have the collection implementing the IList interface from the System.ComponentModel.Generic namespace. I've looked into type converters, but I haven't been able to figure out yet how to get them to work for my needs.
I am using visual inheritance and was wondering if there is a way to change the properties of inherited controls at design time, preferably in the form designer. If not, then in the designer code. I have my control declared as Public in the base class. I can access it in the child form code, but not in the form designer. Is this just not possible?
I've written my code to implement a new property and to set the content to this default text and grey the text whenever the textbox is empty, and to hide it when the user starts typing. This all works fine at runtime.[code]My question is this : If I place an instance of the control on a form, and set the DefaultText via the properties grid, why doesn't my Property Set code run?I'd expect the control on the form to show my new DefaultText in the control, but instead it remains blank. When I run the form it does display correctly, but just not at design time. I place a breakpoint in the DefaultText set property code and it simply doesn't run.
Im doing my first project with WinForms, and Im trying to get the DataBinding working. Theres no database in my project, but I'd like to bind some of the TextBoxes to objects' properties. In the other section of this forum (here) I found this line of C# code which does it: textBox2.DataBindings.Add(new Binding("Text", this.myPerson, "LastName"));
my question is can data binding to object properties be set up during design time (without writing code)? If so, how? P.S. I know how I would set up this binding if in WPF, but I'm forced to use WinForms.
<Serializable()> Public Class GOODownloadFile Private aID As String Private aDownloadLink As String
[code]....
Now when I create an object like this
Dim f As New GOODownloadFile("http:\download.com1.exe", "c:Down", "c:Down") downloader.AddDownloadFile(f) downloader.WriteInfoFile("C:1.txt")
All the values given are correctly saved in the file 1.txt But when I change the download file info afterwatds, like this:
Dim f As New GOODownloadFile("http:\download.com1.exe", "c:Down", "c:Down") downloader.AddDownloadFile(f) downloader.WriteInfoFile("C:1.txt")
[code]....
the new value (123456) is not saved. Hence, only the values provided BEFORE the AddDownload are saved, the rest aren't. I've check my code 100times, and I'm sure everything is fine. I think it may be because of the send-by-value. When I change the values afterwards, the orginal object isn't used.
i've designed mac buttons in vb.net but each project i change the design,propeties and events is there a way to make this design,properties and events the default for any new project.
Is it possible to create a menu at design time and populate it at run time and then display it at the mouse pointer when I click on a cell in a datagrid?
In a typical session with the program I'm writing, the user needs to be able to access the data in 1 to 500 (maybe) tables (but always only one table at a time). Up to now I've been creating these single table datasets dynamically, as and when required.I've now come across the distinction between typed and untyped datasets (where typed seems to be the recommended option). It seems, though, that typed datasets are created at design time only and not dynamically. Is this correct? Are all of my dynamically created datasets therefore untyped?
The company has a Visual Studio 2010 Ultimate project that is written in Visual Basic. The project has several strings in the resources file (Resources.resx). One of those strings (VersionSuffix) contains "" when we are distributing a normal version of our product and "BETA" when we are distributing a beta version of our product. Most of the time we distribute a normal version of our product. Therefore, most of the time the resource string VersionSuffix contains "".
Recently, we attempted to distribute a beta version of our product. Therefore, we changed resource string VersionSuffix from "" to "BETA". However, it quickly became apparent that the resource string VersionSuffix was being used as the default value for several control properties in the form designer. For example, if I draw a rich textbox on a form then file FORMNAME.Designer.vb will contain the following.
Me.RichTextBox1.Location = New System.Drawing.Point(286, 306)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(134, 33)
We are unable to find anything anywhere that indicates that this resource string should be used as the default value for control properties. Therefore, we have no idea why this resource string is being used for this purpose. We would like to change the control property assignments in the designer from Me.RichTextBox1.Text = Global.PROJECTNAME.My.Resources.Resources.VersionSuffix
Me.RichTextBox1.Text = "" However, we don't know why these strange assignments are being made. Therefore, as soon as someone adds another control the problem will most likely return. Does anyone know why this is happening and how to prevent it from happening again?
In my friends company the management brought up the topic of moving in the WPF to design rich UIs. Majority of the employees of the company are programmers and only 3-4 graphic designers. The management wants to train the graphic designers with WPF so that their graphics skills could be applied in creating UIs. However, programmers have a mighty obligation for this. They have written several complaints to the management that WPF is not just Graphics but it has programming in XAML. SO the programmers wants to take over UI design as well (in the past programmers did the UI part as well)...... I'm a programmer therefore i'm with the programmers.
What would be the most suited solution for my friends compnay, should they move the graphic designers the WPF or should they train the current programmers to design UIs in WPF?
I have been developing some components for our products at work, and one of them is based off the flow layout panel.What i would like to do is provide a custom designer for it, but without loosing the features provided by it's default designer (System.Windows.Forms.Design.FlowLayoutPanelDesigner) which is marked as internal.Using Reflector i thought i would just implement it again myself, seeing as it inherits from 'FlowPanelDesigner and that from PanelDesigner` all of which are internal.
Why would these classes be specifically marked as internal? Is it due to them being specifically for Visual Studio use, and thus not 'framework' code?Also, is there an easier option that re-implementing all the functionality?
I am trying to change some properties with a property page during design time. The properties get set okay and the form updates (graphically) and the new properties appear in the property list, however they do not get written to the designer. If I close the form I am on and then reopen it the changes have been purged. However, if after I make a change with my property page, I manually change anything on the form, then it knows it is dirty and commits the changes to the designer.
I need to design a simple label designer that could print labels for shelf items, just like in a grocery store. The requirements are that the label shall contain a name, a barcode (e.g. Code39 symbology), price and room for some extra text.
in VS 2008, is there a way to design a ContextMenuStrip in a designer without a relation to a specific Form or UserControl class? For example,if you need the same ContextMenuStrip in Form1, Form2 and Form3, in which of them am I to design the ContextMenuStrip? Do I have to add a "pseudo-Form" to the project that contains my shared ContextMenuStrips and create only one instance of that Form, or is there another way? I consider this a programmatic hack, that's why my question is whether the IDE offers something better.
I have a base form class that is providing a new property that looks Like this
Public Class BaseForm Private _HappyTime As Boolean Public Property HappyTime() As Boolean
[Code]....
Now when I inherit the BaseForm on a new form, the HappyTime property displays in the properties window as false, and is uneditable.
I've recreated this BaseForm and Inheriting Form in an entirely new soloution and, the HappyTime property is editable and works as expected. For some reason in the existing project (where these changes need to be made) it's not behaving properly.
Environment Information: .Net Framework 3.5, Visual Studio 2010, Win7 x64
Is it possible to make a form that can set the properties on a custom control in the designer? What I mean is I want to know if it is possible to show a dialog that allows you to set the settings for a certain property like if you were adding items to a listbox.
I've played around with this and have figured most of it on how to set the properties of most controls in the designer. I have 2 check boxes I need to set the values on but do not know how. 2 fields one for each in the db with a char(1) value, can be Y or N. If it a Y in the db how would I set it as checked on the form? 'cboPosition Me.cboPosition.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.FmfieldmanmasterBindingSource1, "position_name", True)) Me.cboPosition.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.FmfieldmanmasterBindingSource1, "position_name", True)) [Code] .....
using VS2008, targetting framework 3.5I have a rather complex UserConrol which does some of its own rendering.I display this UserControl on a form.Opening that form in the Designer creates an instance of the UserControl in the Designer, which tells me a NullReferenceException is occurring in one of my rendering methods.I have attempted to correct this by making alterations to the UserControl's default constructor, but have not found success.
I'm building a simple game which involves many pictureboxes with which the player may collide. For instance, I'd have a hundred bricks spread throughout the level. In an old version of pacman I built in VB6 (and upgraded to .net), I implemented this like so:
Basically, I need to transmit data across a network from point A to point B using a Binary Serialization System. I'm doing this to make sure that the system can't have outside listeners read the data being sent easily and to keep results secure and confidential.What is an easy way that I can encrypt, say, a generic object? Would it be easiest to serialize it to file, read the bytes in, encrypt the bytes, then store the bytes in a serialized structure and send that across the stream and reverse the process?
Private Function EncryptClass(ByVal obj As Object) As Byte() Dim key() As Byte = {52, 15, 85, 150, 45, 12, 78, 120,
i have a treeview which has a bunch of parent and child nodes preset at design time, there is 1 parent node tho which is called developer, that i want to add child nodes to at runtime.When the form first loads im trying to have it check a text file and for each line in the text file add the text/string from that as a child node tot he 'developer' parent node.
vb Dim reader As String = My.Computer.FileSystem.ReadAllText(Application.StartupPath() & "ConfigDevs.txt") Dim strs() As String = Split(reader, Environment.NewLine) For Each s As String In strs
[code]....
Thats what i have so far, how can i set it so 'Dim parentNode As TreeNode = ' points at the 'Developer' node?