How To Determine The Type Of A Control
Dec 12, 2009I need to determine the type of a WinForms control in a collection.
[Code]...
I need to determine the type of a WinForms control in a collection.
[Code]...
Public Shared Function IsType(ctrl As Control, ByVal thisType As ??????) As Boolean Return (TypeOf ctrl Is thisType) I need a function that I can call, for example, to determine if a control is type RichTextbox.dim z as Boolean= IsType(txtBox1, RichTextBox) I ned to determine if a control is a given type (i.e., not always RichTextBox). I don't know what Type to make thisType. Can this be done?Actually I simpified the problem but if the above is answered I can write the function
View 4 RepliesI have a small piece of code that iterates through the controls collection on a panel (below) Everything works fine until I want to focus on a control that doesn't support the selectall method i.e. a datetimepicker. Is there any way of determining the type of control and not call the selectall method when the type is datetimepicker. All my other controls support it so that's the only one I need to exclude.
[code]...
I've created the following basic function to determine whether specific control type is currently loaded:
Private Function IsPreviewerTypeLoaded(Of T)() As Boolean
For Each previewer In LoadedPreviewers
If previewer.GetType().Equals(T) Then
[Code]....
I need to compare each control against the generic type supplied. Equals(T) fails to do the job, producing a compiler error. How to make it correctly?
UPDATE: is the following correct?
previewer.GetType().Equals(GetType(T))
I want to scan a directory and see what files are NOT bmp image files. As the file extension can lie I need to interrogate the file itself. I found some code here [url]...?ID=112 that does exactly this however it was written for VB5 and is 13 years out of date! I tried compiling it however VB 2010 baulked and I don't have the expertise to make it work.
View 1 RepliesHow can I programatically determine if a file with a certain extension (XLS, for example) is really an Excel file and not a VBS file, for example, that has the XLS extension?
View 1 Replieshow do you determine cell type of a column?
View 7 RepliesI need to check a value within the registry. The application (Cisco VPN) is a 32bit app so uses Wow6432Node when installed on 64bit operating systems.What would be the best method of selecting which string to use? Checking the OS for x64, attempting to read one and then the other if the first fails? Or is there a better method?
Dim keyName64 As String = "HKEY_LOCAL_MACHINESoftwareWow6432NodeCisco SystemsVPN Client"
Dim keyName32 As String = "HKEY_LOCAL_MACHINESoftwareCisco SystemsVPN Client"
Using .net 4.0 framework?:
Dim registryKey As RegistryKey
If Environment.Is64BitOperatingSystem = True Then
registryKey = registryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64)
Else
registryKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry32)
End If
I am converting a VB.Net application to C#. Everything else is going great. Except this bit. I have a function which builds menus,sub menus and seperators from a database. It can build a MenuStrip or a ContextMenuStrip which can then be assigned to a form.
This means that menus can be extensive and conpmex but managed outside the application, which I also use as part of my security access model. All menus are controlled from the database externally, it also means I can develop visual tools (Treeviews etc) to manage user menus. The application uses menus extensively which is by design.
Programmatically I want to assign an eventhandler to every item that isnt a dropdown or a seperator
In VB I would do this, (works perfectly)
[Code]...
"System.Windows.Forms.ToolStripItem' does not contain a definition for 'DropDownItems' and no extension method 'DropDownItems' accepting a first argument of type 'System.Windows.Forms.ToolStripItem' could be found (are you missing a using directive or an assembly reference?)"
I am still developing this function, but here is what I am intending it to do. This function will accept an Object, then try to determine its type. There are a specific set of types I am looking for: Integer, Boolean, Date, String. What I have so far is pretty privative, but it seems to be working so far:
Private Function DataType(ByVal entry As Object) As ValueType
Try
If IsNumeric(entry) Then
[Code].....
I can't figure out how to determine the type of an object in a collection. I want to do a For Each ... Next loop over the items in the DropDownItems collection of a ToolStripMenuItem. For those items that are ToolStripMenuItems themselves I want to take some kind of action. (The collection can contain other types of items, such as ToolStripSeparators). So I need to say something like: If Typeof(item) = ToolStripMenuItem Then .
View 1 RepliesI have a class C(Of T). I want to determine if some given value has type C, regardless of what T is. For example, I might want to determine if a value is a strongly-typed list, regardless what type of items the list stores. I just need to know how to do it in VB.net. In Java the syntax is like this:
var result = obj instance of Gen2<?>;
I have the following VB.NET function, for example:
Public Function MyFunction (Of TData) (ByVal InParam As Integer) As TData
End Sub
How do I, in a function, determine if TData is a NULLable Type?
I have a dataset and want to know the data type of a specific column. The GetType returns datacolumn not string or integer etc.iggy!
View 2 RepliesI'm interested in having a generic 'Try Catch' clause, with some case statements or if/than statements within the Catch part so that I can handle different error types differently. some way to get ex.Errorcode or ex.ErrorType that differentiates the different errors to a unique value.
How can this be done?
Try
'some code taht will throw an error'
Catch ex AS Exception
If ex.ErrorCode = 20 then
' Do something'
[Code].....
I have the following VB.NET function, for example:Public Function MyFunction (Of TData) (ByVal InParam As Integer) As TDataEnd Sub
View 5 RepliesHeres my sub:
Dim onThisTable as String ="Name"
Private Sub skill_mouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.MouseHover, button2.MouseHover, panel1.MouseHover, panel2.MouseHover, pbox1.MouseHover
[Code]....
Now I wish to give onThisTable a different value depending what the user pass over (panel or a pbox or a button) but I cant find what is the correct way to compare what type it is ...
Private Sub skill_mouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.MouseHover, button2.MouseHover, panel1.MouseHover, panel2.MouseHover, pbox1.MouseHover
[Code]....
I am customizing a DataGridView control. The DataGridView is supposed to be bound to a collection of some type (be it a List(Of T) or ArrayList or whatever), and the idea is that one can easily determine (at design-time in this case) which properties of the type have to be shown in the grid and which column header name they should get. One can do this using an attribute. For example, if I have a class Person with Name, Age and HairColor and I don't want to show the HairColor property, and want to show the Name property as 'Person', I would use:
vb.net
Public Class Person
<Grid.GridOptions(displayName:="Person", visible:=True)> _
Public Property Name As String
[code]....
I do this during run-time by simply looping through the properties of the bound type (in this case Person), retrieving the GridOptions attribute (if any) and checking the values provided. This works just fine except for one thing: I'm not really sure how to determine the type in the databound collection...
At the moment, I cast the DataSource property to an IList and retrieve the type of the first instance in that list (if any). If there isn't a first instance (the list is empty) then I don't know how to get the type... Often I know that it will be impossible to know the type. If someone is binding an ArrayList for example, then it's impossible to know what kind of items he's going to put in that ArrayList. Even the normal DataGridView cannot show any columns when databound to an empty ArrayList. However, the framework's DataGridView does show the columns when bound to, for example, an empty List(Of Person), or a Person array.
I'm pretty sure that casting the DataSource to an IList is not the correct way as all information about the type of items in that list is then lost. But I'm not sure what else to cast it to... ITypedList? IBindingList? I even considered List(Of T) because that's all I am going to be using, but besides the fact that the grid would then obviously only work for a List(Of T) I still don't know how to do this... I don't know 'T' so I can't cast it to a List(Of T)...
I had a look through the documentation on the Wiki, but it seems a bit thin. How do I determine if a type implements a given interface using Cecil? For my particular implementation it is important that I do not actually load the type into the AppDomain.m Here's the code that I have so far:
Dim outputModule As ModuleDefinition = ModuleDefinition.ReadModule(outputFile)
For Each assemblyType As TypeDefinition In outputModule.Types
'How to determine if assemblyType implements a specific interface?
I am using VB .Net for this, so I don't have access to var or this would be a simple matter.Right now my query is as follows
[code]...
So I used this query in LinqPad to help me determine what the object would look like. I got back a IOrderQueryable(Of RSError) which then contained a IGrouping(Of String, RSError) for each grouped collection of objects returned by the query.However I ended up with the current object type of errors as IOrderedQueryable(Of IGrouping(Of String, RSError)) because of the cast error I am getting in VS.
[code]...
I'm not sure how to get rid of the VB$AnonymousType_1 Part of the returned object.Am I even on the right track here or am I missing something completely?
I'm working on a project that requires that I programmatically examine the ServiceAccount of all services installed on a machine (regardless of status) to determine Logon Type which will be used as an indicator of which passwords need to be changed on a machine for maintaining security.
If possible I would like to keep the entire project in VB.Net and Ive been looking through the API to find namespaces that contain classes to allow me to do this. Ive come across System.ServiceProcess which does allow me to get quite a bit of information about services installed, but I cant seem to find a way to get the Logon Type (I would guess that it would be returned as a System.ServiceProcess.ServiceAccount object).Ive also tried System.Management using ManagementObjectSearcher and ManagementObject, but Im not sure if theres a way to get that information with a WQL statement (I know next to nothing about WQL, unfortunately).
I'm trying to identify if the input of a textbox is non numerical, which cannot be converted to an integer/double for calculation. I do this by converting the input1.text to ascii, and looking at the value to determine the type of input. My question is whether there is any way I can analyze the whole input character by character? Asc() only gives the ascii value of the first character, but what if the input is "9W" etc? Such inputs will pass my character test, but cannot be converted to an integer.
View 2 RepliesI have a program with 32 PictureBoxes (pb1 ... pb32). The user will select one of the picture boxes. All picture boxes will call the same subroutine, passing the variable of the name of the box clicked. Rather than writing a click event for all 32 boxes, and call the same subroutine from each event, is there a way that I can determine which picture box has been clicked?
View 3 RepliesI have two columns of numbers that hold team scores for different events. I am looking for a OO way to Color the textbox of the team with the highest score in each event. I know the following will not do it (without writing a complex set of If Then Statements) but I think it might paint a clearer picture of what I am trying to do.
VB
Private Sub ColorWinner(ByVal crtl01 As Control, ByVal crtl02 As Control)
If CDec(crtl01.Text) > CDec(crtl02.Text) Then
crtl01.BackColor = Color.Gold
[Code].....
The controls are always going to be text boxes. So basicaly I want to determine the text box with the highest value and act on it without having to write a complex series of nested IF Statements.
Is there a way to determine is any control at all on a form has gotten focus? I know you can individually determine if a single control has focus or has been clicked, etc. but is there an event that can tell you that some/any control has been clicked?
i.e.
Private Sub myFrm_Magic(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.SomethingClicked
Msgbox(Me.ActiveControl.Name)
End Sub
I've written a piece of code that takes 3 fields from a database and writes out the 3 added together, but with the middle field cropped down, so that the total number of characters is always 28, what I thought was the width of my listbox. I realised when I debugged though, that the listbox was docked and grew or shrank depending on the size of the screen.
Is there a way to determine how many fixed width characters will fit in a control, at run time?
I have three buttons on my main form, say Form1. Clicking any of the buttons brings up Form2 modally for input, it's a number pad. Now, depending on which button was clicked to get there, after the user enters his numbers, I need to change a specific label on Form1. In other words, btn1 clicked puts user input into lbl1 and so on... I could probably do this with a variable but wondering if there is a more elegant way.
View 3 RepliesI have a project setup, where depending on a certain variable one of two controls will be used. Either the default webbrowser or the gecko control. Now I can load either one fine dynamically but I can't work out how to use either one depending on a variable result.To load the one I know I want is easy enough..
Code:
Private WithEvents wb As Skybound.Gecko.GeckoWebBrowser
wb = New Skybound.Gecko.GeckoWebBrowser()
Me.Controls.Add(wb)
[code]....
I want my webbrowser to be called wb as I already have all the event handlers written.
i have an if statement that neds to check if the control passed is a checkbox or a radio button
If TypeOf (Control) Is CheckBox Then
If count = 1 Then
text += Me.GetCheckBoxValueJQuerySyntax(Control.ClientID) & " + '~' + "[code]......
This fails as the checkbox and redio button derive from the same class, so how woudld i check if the control is a checkbox or a radio button.
I'm writing a control that needs to check a property of the form it's placed in.Is there a way to do that?
View 1 Replies