I am bringing back here the subject of the communication between forms. The reason for this is that in a recent discussion in this forum it was conclude that using the events for communication between forms was a good practice. In a first time, I want to say, and everybody should agree with this that no form should never access directly any value or control values that belong to another form. There are many reasons for this but the principal one can be seen in this example
IN FORM1:
TextBox1.Text="CrazyPennie"
Dim MyNane as string = Textbox1.text
With this code, Form1 will expect "MyName" to have the value "CrazyPennie".
But, if Form2 does access the directly the controls of Form1, it is possible for the value of MyName to be set to something else since Form2 can have changed the value of TextBox1.Text before the assignment by Form1 to MyName. Now, what is wrong about using the events for the communication? The problem is that an event is broadcasted throughout the entire application, so the conversations in between two forms are not private.
Look at this scenario:
You have 3 forms in an application that communicate with each other with events. It is then possible for Form3 to listen to a communication between Form1 and Form2. It is also possible for Form3 to make the error to believe that the message send by Form1 to Form2 was address to itself. In this case, Form3, following this message may take some action that should not have been done and that result in some undesirable repercussion throughout the application.
This code keep the communication in between 2 forms private so no other forms or class in the application can listen at it and accidentally take an undesirable action due to a mistake.
Option Strict On
Public Class Form1
Delegate Sub MessageDelegate(ByVal sender As Object, ByVal Message As String)
Dim Form2 As New Frm2
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
[Code] .....
I want to communicate Weigh bridge with my ORACLE Form serially. I have already import MSCOMM32.OCX in my Project and On Button Pressed I wrote a Program to Start Communication between Weigh Bridge and my form. I was stuck at GET_NUM_PROPERTY of MSCOMM32.OCX Package.
VB.NET 2003 makes it difficult to have a child button create an event on a Parent form control. I would like to change the state of a control on the parent form by using a button on the child form.
I am working on an application on serial port communication with PLC machine. Now this communication is only done with one PLC at a time. So I m sending a query to PLC and until its responds back the application goes into wait mode. i.e. no other operations can be done, and an hourglass cursor should be displayed with all other components locked on the form. So how do I achieve this using vb.net?
i want to receive data to my pc from external hardware but i don't know how to do it since i am new to vb.net. the code in vb.net to receive data using serial port rs232.
I have googled high and low to find an answer to this but I must be searching wrong.I have an application which has a listview displaying some items that are stored in a SQL Compact database. I am using a second form to add new items to this list directly into the database.When the second form closes I want to call the sub in my first form to refresh the list from the database.
How can I get it to fire the form1 sub routine on the close event of form2
I have a form set up that allows the user to do many things to manipulate items. One of the things they can do is replace an item with another. To do so, what I have them do is click the Replace button on the main form. This calls the show of a choose replacement form where there is a grid view containing the replacement options and a Replace and Cancel button. When the user selects a product from the grid, and clicks the replace button, I want the item's ID to be sent back to the main form to be used in the replacement sub.This is what I have:
I have a tabbed webbrowser I want to add an event to it to make it so IE doesn't pop up when I click a link, with a normal webrowser that is easy but I guess I have to do a handler with the tabs being part of the browser and all. I have little experience with handlers. [Code]
I declared a browser in my VB.NET project (Dim browse as new WebBrowser). How am I supposed to get to the events (browse_NewWindow) of the declared thing?Oh yeah, my code for my browser is CType(TabControl1.SelectedTab.WebBrowser(1))
How can i code my application so that it can handle two sets of key events at the same time? For example, if I was making a game where one player used the WASD, and the other the arrow keys for moving, how can i make it so that both can move at the same time? The code I used only allows one to move at a time.. (key press event, If e.KeyData = Windows.Forms.Keys.down then.... etc)
i'm making a astoroids clone and i use pointF to store units position, but they lost y value on events like form.losefocus(i think)Is there any ways to prevent this?
I have a form with 2 contols that I with to connect by drawing a "wire" on the screen. It goes like this: you mouse down on the first control then move the mouse while holding the mouse button down. When the mouse is over the 2nd control the mouse button is released and the controls are wired.
So I am playing with mouseup, down, move, etc. When the mouse is over the first control I get mouse moves from that control, but when it moves off the events stop, and I get no events from the form even though the mouse is there.
Is there a way to do this? I have seen it done in a Java app. I could brute force it and just draw a box on the form instead of a control, but that sounds like a step back.
I have form 1 which will raise an event for form2 after doing some calculations. I know how to raise an event in form2 and then write the sub in form1 but i cannot do the reverse... how can I do this in reverse??? I cannot raise the event sub in form2 is not responding.
Example: Form1: Code: Public Class Form1 Event test() RaiseEvent test() [Code] .....
Is it possible to have multiple click events for a button based on the button text? In other words, if I change the button text can i create a new click event based on that text but use the same button?
for example:
button1.text starts as "steel" button2.text starts as "brass"
If I click button1 again a string would then be added to a textbox and the process would start over again. can I have a different click event or would I need to put an If/Then or Select/Case in the sub to handle this? I have 10 buttons I would need to do this with and each needing at least 3 different choices for each depending on the previous button press.
I have two questions for anyone who can throw some idea's my way question 1:I am currently working on a control with three combo box's. This control will be nested on a form, and I want the on-board timer to track how long each control is active. I am trying to use the focus events of the combobox's to determine if the control is active so the program will know when the timer should be started and stopped. My problem is, for example, when the user causes the text property of the combo boxes to change, the folowing code runs:
[Code]...
As you can see, there are points in this sub-routine that can cause the focus to shift, as well as fire the text changed event. While this all happens faster than is really noticable, I would like to eliminate the extra cycles if at all possible. As I mentioned in question one, I am adding this control to a form, to be more clear I am adding multiple instances of this control to a single form, and I am trying to use the focus events to determine which of the controls within the form are active; however, when the form itself is no longer the active application, whether it is minimized, behind another application or otherwise, all of the timers stop. I want whichever control was active at the time that the form was deactivated, to continue as if nothing changed.
I am using an inherited form extensively for the first time, and I'd like to know if what I'm doing is correct.I have a base form with a grid and four buttons (Add, Edit, Remove and Close). There is no functionality in any of the button click events, as the specific implementation of each derived form will be different. The only exception perhaps is that the Close button closes the form. The only reason I am using a base form really is because I've many forms that look the same.How do I now expose the button click events to any derived forms? The only straightforward way I could think of was to have the button click events call an Overridable method, which I then override in the derived form:
Public Class frmTableBase Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click Me.AddButtonClicked()[code]...
Is that the correct way? It seems a little bit overkill to have to do this, although I can't think of another way really... Perhaps I could add the Overridable keyword to the event handlers themselves (and make them public)..?I'm doing it the way I showed now however. It works, but I'd just like to know if this is the generally accepted way of doing this.
I am creating a project with a maximized per-pixel alpha form. However, the normal input events (MouseDown, MouseWheel, KeyPress, etc) are never raised. I've been able to create some bare-bones functionality by overriding the WndProc method, but some things elude me. For example, I want to detect mouse wheel scrolling. When I check for the mouse wheel message, it works fine. Then I try to use the GetLParam function to get a MSLLMOUSESTRUCT with the scroll data. However, when I try to use it, I always get an error:"Attempted to read or write protected memory. This is often an indication that other memory is corrupt." What can I do?-Must Program! Error: Not enough time to program
We have a vb.net 2010 application with a base form and an inherited form When we change the position of a control coded on the inherited form we lose handles on the events in the inherited form for that control. We also lose the handles on the Load event in the inherited form.
My application has 1 main form and three other forms which raise events to my main form. I noticed that the memory starts at 77,000 K and increases substationally over a few hours maby be to 250,000k and ever increases.The main form has a dataset and a bound datagridview which gets refreshed with data. Basically it's a taxi booking application. The booking form raises an event to the main form and the main form refreshes the jobs and displays them on the dgv.
Which form events fire when a form is minimized, restored and maximized.I am trying to draw lines on a PictureBox control, but cannot get the draw subroutine to run after the form has been restored from a minimized windowstate.I probably should know this answer, but I have not written much code in the last 4-5 years and am relatively new to vb.netAlso.
The problem I'm having is with the .close() event. Basically I've created the below code to prompt the user when closing the form they are currently viewing.
Private Sub Form_closed(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.FormClosing If MessageBox.Show("Do you wish to exit?", "Program Name", MessageBoxButtons.YesNo) =
I have designed a window application that: check the contents of a folder for specific files (HTML)move files to a 'working' diretoryparse each file with webbrowser control to extract datacall webservice to collect additional data
The main form has a large ListBox that displays event messages. What I want is for the application to display the messages as they happen. What seems to be happening is that the application will do everything and then display all of the event messages at once at the very end. pointers on how to write code that will add event messages to the ListBox as they happen?
I am migrating my code from vb.net 1.1 framework to vb.net 3.5In my windows application, the base window has some buttons and events are written for the same.I have shortcuts defined for these buttons also, for example: ctrl+d, DEL (keyboard) etc.Now i open a property Grid form on top of my base window for a selected object.Even when the focus is on this property grid, i am noticing that my base window events are firing on pressing those shortcuts.
example:I select some text in my property grid and hit delete button from keyboard. The delete event that i have written for the selected object gets fired and the text is not deleting.I fail to understand why is it happening. It wasnt behaving like this in .net 1.1.In .net 1.1 it would delete the text and only when the focus is back on the base window, hitting Delete would call the event.How do i control such a behavior? Is there some property that i need to set for property grid in .net 3.5 to prevent base window events from firing till the time focus is on property grid form?
I'm writing a tabbed web browser for someone who is learning VB.NET, and I have got to the point where I can add/remove browser controls into tab pages, controlled by one set of buttons on the main form, but I can't handle events from the WebBrowser objects.I have tried this but it says that 'DocumentTitleChanged' isnt an event of 'Control'...
Dim browser As New ArrayList browser.Add(New WebBrowser) browser(0).parent = TabControl1.SelectedTab browser(0).dock = DockStyle.Fill AddHandler browser(0).DocumentTitleChanged, TitleChangedHandler()
I want to update the tab title with the web page title when it changes. I started using a timer to update the tabs but there must be a way to add an event handler here.
I have a form being called form several forms using ShowDialog().
1. Is there a way for called form to know which form called it by receiving a code or key from the calling form?
2. The calling form has a gridview. How can the called form pick up a column's value from the currently highlighted row in gridview in the calling form?
I have been trying to implement the jQuery weekcalendar using .net. What I can't seem to figure out is why weekcalendar states events.events is undefined after I make an ajax call to a webmethod I created which returns JSON. Below is the relevant code:
What kind of objects should BLL and DAL use for communication - DataTable or List<Customer> (for example)? In first case, BLL logic should transform Customer object to DataTable and send it to DAL. In secod case, DAL layer should be aware of Customer class, which is in BLL layer. But originaly DLL references DAL and not opposite...
Should I put all classes into seperate assembly, which is referenced by all others (Common, BusinessObjects, ...)? In this case I could use Customer class in all my projects. Should I even bother to seperate DAL and BLL when I know, that only one BLL will use my DAL. In this case I could merge them together into one project. PS - I am reading about DataTables and a lot of people say that we shouldn't use them at all. What are better options? Maybe it is time for me to learn some ORM mapping tools :)