I'm looking for a reference that can explain the concept and use of the DataReceived event and Delegates subject.The reference has to be pretty simple as I'm an "old dog attempting to learn a new trick". I'm not ignorant of things programming, but am ignorant of things dealing with serial communication in VB2005.I already have a couple of O'Rielly books ("VB2005 Cookbook", "VB2005 Desktop Reference") and I have a book that deals with serial communication from a Jan Axle-something. Neither O'Rielly books have any info, and the Axle-someting book's remotely related examples are too confusing for this slow learner.
Im using VB express 2008 (compiled with .NET 3.5) to write a program that communicates with a USB device. The USB device is a communication class device and thus will emulate the usual rs232 serial port once attached to the PC. The USB device sends a fixed number of bytes and i have set the threshold received byte property to this value. I have run the program and it seems to read the USB device "correctly" but when i debug the code, i realise that the datareceived event of the serial port gets fired on the eventtype = EOF. I am using the Read function to read the bytes from the serial port and the Newline property is set to "" (but i thought that this is irrelevant if im not using ReadLine). When the datareceived event fires with EOF, the Read function blocks until one byte arrives, reads it and calls the function that processes the data. I went through the forum and realised that the EOF eventtype is no longer supported, is this true? I dont think that getting this eventtype is logical anyways in my case.
I am trying to get a fairly simple Serial Port program working. So simple in fact I have been bashing my head over it for quite a while.
I have a piece of equipment connected over a null modem cable. When turned on, it just starts spitting data out RS232 and I need to capture it. Hyperterminal does see the data so the USB-serial converter is working.
When I run the code snippet included, the port opens fine, but the DataReceived event never fires.
Imports System.IO Public Class Form1 Dim WithEvents serialPort As New IO.Ports.SerialPort
So I just spent the last 4 hours trying to find out what was wrong with my code, just to find out that there's a bug in this version or I just don't have enough knowledge of VB2010 (I'm coming from VB6, this is my first program on 2010)I removed the rest of the code just to point out the problem, here it simply tries to enable the Timer1 when you receive data in the SerialPort1
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived If Me.Timer1.Enabled = False Then
[code]....
After this I found that the code inside the Timer1 didn't run when the 100miliseconds passed, so I added a msgbox to see debug.
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived If Me.Timer1.Enabled = False Then
I was going through tutorials and found the topic of Events and Delegates. However, I fail to understand why should this be required ? Instead of having to raise events, can't one just call the necessary procedure ?Sorry for posing this basic question. Any replies or even links to existing posts are welcome. [Also not sure if this question strictly falls under VB.NET category.]
is there a way to check how many delegates are attached to an event, let's saymybutton.Click has 10 handlers, 5 by using the Handles keyword and another 5 added by using the AddHandler method (well this is not the point, then point is that i do not know how many handlers there will be). and i would want to create another button that had all 10 handlers of mybutton.Click attached to its Click event as well.
well i want all my textbox's event- keypress should be called by using Delegate
The Function i need to preform on them is only Numeric
My code
Public Delegate Function mydelegate() As Char Public Function key(ByVal e As System.Windows.Forms.KeyPressEventArgs) As Char Dim ch As Char = e.KeyChar
[Code]....
The problem comes when i use this code it surely gonna restrict me entering the alpha characters but i m facing problem is i can enter only a single digit number i.e when i try to enter 45 it's simpley don't expect it only value which it is accepting is [1],[2] what i want it should accept the value's in two digits,three digits and so on..
I was perhaps too quick to think that VB's built-in event would be be easy to use. As you can see from my previous post I am building a program which sends and receives a few bytes from serial bus. The bus is actually a usb serial adapter, there are no real serial buses in my machine.Anyway that SerialPort1.DataReceived does not fire. It is from visual studio/vb ide so syntax should work? Here is my start up code. There are many comments, because I tried various combinations.
If Not _serialPort.IsOpen Then If Not arvo = "" Then _serialPort.DtrEnable = False _serialPort.Parity = Parity.None
I've managed to make an application at home using a serialport emulator and connector that will read text from a file on my desktop send it to com1 and then my connector program will merge com1 with com2. In short my program works at home but when I connect it to my device it appears the data in DataReceived is a fraction of what my simulator setup at home is producing, which apparently is completely normal according to all these threads I've read here.
Every 5 to 10 seconds I receive 5-12 bytes of data (confirmed w/Hyperterminal). I can open the com port(btn1), read bytes(btn3) until bytes to read = 0, but then i'm stuck; the data received event doesn't seem to respond. If I close the serial port(btn2), re-open i can read more data until bytes to read = 0 then stuck again. I tried several suggestions for threads and delegate and invoke but none worked. (WIndows XP, VB 2008)
I have an application with serial port datareceived event. My instrument sends me aprox.00bytes every 1 second. Which I then process and update few textboxes on the main formRecently my application started crashing if I press close button.I am guessing form_closing closes serialport at the same time datareceived event triggers in which the sp1.bytestoread causes the crash.1. I added synclock in datareceived and in form_closing.Within synclock in form_closing I removed datareceived handler.
I have created a TextBox array where certain cells are assigned a number which I do not want the operator to change either intentionally or inadvertantly.The relevant TextBox cells are identified by their BackColor, (in this case LightBlue)If the cell is changed the original content is immediately assigned to the cell and a relevant message is displayed.My problem is that by changing the value back to its original value I create another TextChanged event and the consequence is that the MsgBox is displayed twice, one after the other.I have avoided the problem by not displaying a message box. The outward appearance is that the TextBox is not changed at all, which of course is my aim.However I would prefer to display a message box.An example of the scenario is shown below.
Another bewildering fact, (to me), is that in the example below, if the check is not made of the BackColor but instead the value of the TextBox the problem doesn't occur
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged If TextBox1.BackColor = Color.LightBlue Then[code]...
In the example above, if in the Text_Changed event handler the 'Remark' is changed from one 'If' statement to the other the differences in the result can be seen.
I have some different controls (PictureBox, Label,Button...) that are created by code. The set number of these controls isnot fixed. So let me set this number ton. And I have the following lines of code to create some of these controls.
For i5 As Integer = 0 To n dBoxArray(i5) = New PictureBox 'PictureBox Panel1.Controls.Add(dBoxArray(i5))
I have a class that is in an assembly due to being required for other projects that I'm currently working on. One class lets call it Class Factory, creates a group of controls which require click event handlers to be attached, I have algorithms which determine polymorphic behavior based on certain features but that is relatively irrelevant.
Due to the event handler having to open up a specific form that isn't part of my assembly, and that form requiring this "Factory" class. Without creating circular reference is there any way I can essentially "delegate" the handler event for the form to define? As a simple work around I have had to maintain two separate classes, one in the project with the form and one in the assembly.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Width = 1500 Dim panel As New Panel panel.Location = New Point(0, 0) panel.Size = New Size(1000, 200) [Code] .....
I've created some dynamic controls on page load and added an event handler to handle the click event of a dynamic link button. Within the sub of the click event handler, I need to reference some other (non-dynamic) controls on the page and change their value. However, I get a null reference exception - object not set to an instance of an object - each time I try to reference a control on the page (in this case label1). What am I doing wrong in creating these dynamic controls or with my event handler?
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Get the data to populate the controls
I have a class that I want to be serializable but contains a public instance of delegate that, apparently can't be serialized: [Code] Is there a way to make it serializable however?
My question is: what is the right way to accomplish this to resolve the ambiguity so that I can pass value or references types and get overload 2, but pass Functions and get overload 1? Can I constrain the types in some way to make this happen?
I've been tinkering with Delegates, and now Multicast delegates. Every time I invoke two delegates It only displays one of the two delegates per invocation.
So func is a function that accepts a string and return a string. In practice, internally, func also utilizez text1, text2. In fact, func can even be a member function with access the object that owns it (something like me or this operator).
And all that can be accomplished without changing the signature of func? How do the compiler do this?
I am struggling to get the syntax for the reflection call GetCustomAttributes ... at least I don't seem to be able to get hold of the custom attribute which I've decorated a particular method with. The complicating factor maybe that I have passed that method into an extension method as a generic delegate. (The other, more likely, complicating factor is that I'm not sufficiently familiar with reflection or what happens when you pass a method as a parameter like this!)
The code appears to run, and when I step it, the count returned from the GetCustomAttributes is 1. I can't work out how to get hold of that custom parameter
is there a way to create an interface of delegates? Sub dostuff(byval arg1 as dele1)works, problem is that i have 8 delegates, so i will have to give it 8 signatures. that isn't so bad, but the problem is that when there are various combinations of signatures it gets real real bad.
Sub dostuff(byval arg1 as [Delegate])works, but it allows me to accept delegates beyond the 8 that i wanted (it's like declarign arguments with base Object)could i be able to do this:
I have a VBNET app to scan my Active Directory using WMI calls and return some basic informaiton such as Dell Model name, current user logged on, Dell Service Tag etc my issue is the app becomes unresponsive whilst it scans and i have to wait for it to finish looping before i can work with it, in the past a do events used to suffice
I think Multithreading is the way i may need to go, whats the best approach? I tried to use Delegates but it doesnt seem to have made any difference
below is my for next loop code that calls the functions, the last section "Private Sub Button1_Click" down is the Delegate code i attempted
Maybe I am just not reading the MSDN documentation correctly, but given a function that takes in one string parameter and returns type T, how can this be specifed as a shared function using Func()?
MSDN says Func(Of In T1, Out TResult), but all of their examples use the same data type, i.e., Func(Of String, String). I want to do Func(Of In String, Out T), where T is arbitrary (but I can constrain it if necessary by a base class). I want it shared/static at the class level, yet the encapsulating class will itself not be a generic class. It seems in this specific scenario, it's impossible to do what I want because the compiler would have no way of knowing what Type T is at runtime.
So is it possible to do generics on delegates or anonymous lambda expressions in VB.net (not C#)?
What is the difference b/w Delegates and Events. I have little bit confusion. Where delegates are used, and when we have to used delegates. Can, you give some examples(both delebates and events) in vb.net.
Protected Sub CompetenciesButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CompetenciesButton.Click Dim con As String = WebConfigurationManager.ConnectionStrings("foo").ToString()