|
Is it possible to create a MultiLine list box?
Any references that could point me in the right direction? Thanks!
|
|
|
|
|
Do you mean add items?
Here is how you add items:
lstBoxAddItem.Items.Add
|
|
|
|
|
|
This is the source code
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Data.SqlClient
Imports System.Data
Private str_connection As String = "workstation id=""MAX-IT10Q0"";packet size=4096;integrated security=SSPI;initia" & _
"l catalog=Addressbook;persist security info=False"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cnsql As SqlConnection
Dim load_dataset As New DataSet
Dim rpt As ReportDocument
Dim str_query As String
rpt = New ReportDocument
rpt.Load("..\CrystalReport2.rpt")
cnsql = New SqlConnection(str_connection)
cnsql.Open()
str_query = "select name,Address from tb_abook"
Dim load_adapter As New SqlDataAdapter(str_query, cnsql)
load_adapter.Fill(load_dataset, "tb_abook")
rpt.SetDataSource(load_dataset)
CrystalReportViewer1.ReportSource = rpt
End Sub
Report :Crystelreport 9.0
Os: XP
visual studio.net 2003
Continue...
|
|
|
|
|
Hi everyone,
I was just wondering if anybody knows the answer to this as i have looked and found nothing.
I have a form with several controls on it, i want to catch the keypress - easy enough but for all controls including the form not just the one with focus. The only way i can see is to add the event for every control, but i have about 75 controls on this form and this just doesn't seem logical.
any ideas
help is greatly appreciated.
"If i was king cigarettes would be free."
|
|
|
|
|
Your form and a majority of controls in .NET should already have a KeyPress event. It's up to you to put code into those events to perform whatever action/task you want to accomplish.
|
|
|
|
|
Sorry I read wrong...but other than placing code in the KeyPress event...it really depends if you are doing a specify task for that control. If each task is different...I don't see a way around this.
Plus, if you just capture the KeyPress on the Form you will still have to delegate the task to some event/sub of that control and knowing which one to delegate to could be a real mess!
|
|
|
|
|
No he doesn't! See Form.KeyPreview[^]
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
AFAIK, this is the only way to do what you want, without writing keyboard hooks...
Form.KeyPreview Property[^]
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thanks everybody for the replies.
Thought I'd let you know what i found out, although KeyPreview looked good i had just found what i wanted, this doesn't mean i not grateful for the reply as i am and i almost used it anyway as it looked good and i think i might still.
However i found two ways of doing something similar to what i wanted.
They are....
method 1, rather than have several key press events you can have one sub that handles them all if you add the keypress for each on the end of the event handles bit, although this does mean adding all 75 controls on the end like so....
Private Sub Button1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Button1.KeyPress, ListBox1.KeyPress, Label1.KeyPress, PictureBox1.KeyPress, etc.KeyPress
End Sub
method 2, found a piece of code to add the keypress handler for a control to another sub
Public Sub AddKeyPressEvent(ByVal ControlName As Control)
AddHandler ControlName.KeyPress, AddressOf GenericKeyPressEvent
End Sub
Public Sub GenericKeyPressEvent(ByVal sender As Object, ByVal e As KeyPressEventArgs)
MsgBox(e.KeyChar)
End Sub
You just call AddKeyPressEvent(Listbox1) and then it's keypress event will be GenericKeyPressEvent,
Using this i could loop through the controls on the form and add them all at startup, clunky but effective, however keypreveiw looks good.
Thanks again
Hope this helps someone else with this problem.;P
"If i was king cigarettes would be free."
|
|
|
|
|
KeyPreview is overkill? It's doing something very similar to what your two methods are doing in function, but with no code and is much quicker. All you're doing is putting the code your processing the keystrokes with into a different sub.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I am converting a working VB6 program to VB.net and am unable to
correctly pass these structures to the dll.
I think I have everything initialized correctly but am not sure.
Any help or comments on how to Marshal this data will be appreciated.
Dim TP As Transport
Dim aDevices(100) As Device
<StructLayout(LayoutKind.Sequential)> _
Private Structure Transport
Dim Encrypt As Encryption
Dim SourceAddress As EnetAddress
<VBFixedArray(47)> Dim Reserved() As Byte
Public Sub Initialize()
Encrypt.Initialize()
SourceAddress.Initialize()
ReDim Reserved(47)
End Sub
End Structure
<StructLayout(LayoutKind.Sequential)> _
Private Structure Device
<VBFixedArray(125)> Dim Address() As Byte
Public Sub Initialize()
ReDim Address(125)
End Sub
End Structure
<StructLayout(LayoutKind.Sequential)> _
Private Structure Encryption
Dim Algorithm As Byte
<VBFixedArray(2)> Dim Unused1() As Byte
<VBFixedArray(59)> Dim Key() As Byte '(null terminated)
Public Sub Initialize()
ReDim Unused1(2)
ReDim Key(59)
End Sub
End Structure
<StructLayout(LayoutKind.Sequential)> _
Private Structure EnetAddress
<VBFixedArray(19)> Dim Address() As Byte
Public Sub Initialize()
ReDim Address(19)
End Sub
End Structure
Private Declare Function PASCAL_QueryDevices Lib "hei_pas" _
(ByRef pTransport As Transport, _
ByRef pDevice As Device) As Integer
Private Sub foo()
Call TP.Initialize() 'update call
For i = 0 To 100
Call aDevices(i).Initialize()
Next
'*************THIS CALL FAILS*****************
RC = PASCAL_HEIQueryDevices(TP, aDevices(0))
'*********************************************
End Sub
meyer
|
|
|
|
|
It would help to see what does work, so it can be correctly translated into VB.NET. Since it's very unlikely that anyone else is going to have the docs on the function your trying to call, it would help to see what's working!
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I am not sure exactly what you are asking to see.
The call to the dll is the next to last line of the code sample and the declaration is about midway through the code.
Most of the dlls I work with are custom drivers for industrial machinery and I do not have access to the code or even the technical details of how the code works. I am given the method names and a sample of how to use them. The sample was given in VB6 and works.
I will be happy to email the full code and the driver dlls to anyone who is interested in commenting on getting this code to work.
Thanks for the interest.
Meyer
meyer@meyerengineering.net
|
|
|
|
|
You said you're converting a working VB6 app to VB.NET. How about seeing the working VB6 source your converting from?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
This VB6 code works.
Note that I had removed some parameters from the VB.NET sample for brevity.
Thanks again.
Const HEIAPIVersion As Byte = 3
Const HEIP_IP As Integer = 3
Const HEIT_WINSOCK As Integer = 4
Private Type Encryption
Algorithm As Byte ' Algorithm to use for encryption:
Unused1(2) As Byte ' Reserved
Key(59) As Byte ' Encryption key (null terminated)
End Type
Private Type EnetAddress
Address(19) As Byte
End Type
Private Type HEITransport
Transport As Integer
Protocol As Integer
Encrypt As Encryption
SourceAddress As EnetAddress
Reserved(47) As Byte
End Type
Private Type HEIDevice
Address(125) As Byte ' 126-byte byte array (VB packs on 4-byte boundaries)
End Type
Private Declare Function PASCAL_HEIOpen Lib "hei_pas" ( _
ByVal HEIAPIVersion As Integer _
) As Long
Private Declare Function PASCAL_HEIClose Lib "hei_pas" ( _
) As Long
Private Declare Function PASCAL_HEIOpenTransport Lib "hei_pas" ( _
ByRef pTransport As HEITransport, _
ByVal HEIAPIVersion As Integer, _
ByVal EnetAdress As Long _
) As Long
Private Declare Function PASCAL_HEICloseTransport Lib "hei_pas" ( _
ByRef pTransport As HEITransport _
) As Long
Private Declare Function PASCAL_HEIQueryDevices Lib "hei_pas" ( _
ByRef pTransport As HEITransport, _
ByRef pDevice As HEIDevice, _
ByRef pNumDevices As Long, _
ByVal HEIAPIVersion As Integer _
) As Long
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Global variables
'
Dim Rc As Long
Dim TP As HEITransport
Const MAXDEVICES As Integer = 100
Dim aDevices(MAXDEVICES) As HEIDevice
Dim DeviceCount As Long
Private Sub NetworkInit_Click()
Rc = PASCAL_HEIOpen(HEIAPIVersion)
TP.Transport = HEIT_WINSOCK
TP.Protocol = HEIP_IP
Rc = PASCAL_HEIOpenTransport(TP, HEIAPIVersion, 0)
End Sub
Private Sub ScanNetwork_Click()
DeviceCount = MAXDEVICES
Rc = PASCAL_HEIQueryDevices(TP, aDevices(0), DeviceCount, HEIAPIVersion)
End Sub
meyer
meyer@meyerengineering.net
|
|
|
|
|
Thanks ProgLoad!
This is the cure.
*****************************************************************
Const HEIAPIVersion As Byte = 3
Const HEIT_WINSOCK As Short = 4
Const HEIT_IP As Short = 3
Const MAXDEVICES As Short = 100
Dim DeviceCount As Integer
Dim RC As Integer
Dim TP As HEITransport
Dim aDevices(MAXDEVICES) As HEIDevice
<StructLayout(LayoutKind.Sequential)> _
Private Structure HEITransport
Dim Transport As Short
Dim Protocol As Short
Dim Encrypt As Encryption
Dim SourceAddress As EnetAddress
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=47)> _
Dim Reserved() As Byte
End Structure
<StructLayout(LayoutKind.Sequential)> _
Private Structure HEIDevice
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=125)> _
Dim Address() As Byte
End Structure
<StructLayout(LayoutKind.Sequential)> _
Private Structure Encryption
Dim Algorithm As Byte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=2)> _
Dim Unused1() As Byte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=59)> _
Dim Key() As Byte '(null terminated)
End Structure
<StructLayout(LayoutKind.Sequential)> _
Private Structure EnetAddress
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=19)> _
Dim Address() As Byte
End Structure
Private Declare Function PASCAL_HEIOpen Lib "hei_pas" ( _
ByVal HEIAPIVersion As Short _
) As Integer
Private Declare Function PASCAL_HEIClose Lib "hei_pas" ( _
) As Integer
Private Declare Function PASCAL_HEIOpenTransport Lib "hei_pas" ( _
ByRef pTransport As HEITransport, _
ByVal HEIAPIVersion As Short, _
ByVal EnetAdress As Integer _
) As Integer
Private Declare Function PASCAL_HEICloseTransport Lib "hei_pas" ( _
ByRef pTransport As HEITransport _
) As Integer
Private Declare Function PASCAL_HEIQueryDevices Lib "hei_pas" ( _
ByRef pTransport As HEITransport, _
ByRef pDevice As HEIDevice, _
ByRef pNumDevices As Integer, _
ByVal HEIAPIVersion As Short _
) As Integer
'same as INIT button on full application
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
RC = PASCAL_HEIOpen(HEIAPIVersion)
TP.Transport = HEIT_WINSOCK
TP.Protocol = HEIT_IP
RC = PASCAL_HEIOpenTransport(TP, HEIAPIVersion, 0)
End Sub
'same as SCAN button on full application
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
DeviceCount = MAXDEVICES
'********************************************************************************
' this is the problem call
' TP and aDevices() I think need to be marshaled
'********************************************************************************
RC = PASCAL_HEIQueryDevices(TP, aDevices(0), DeviceCount, HEIAPIVersion)
End Sub
meyer
meyer@meyerengineeering.net
|
|
|
|
|
Meyer,
Your welcome.
Thanks for letting me how it worked out.
If I can help with anything else just let me know.
Progload
|
|
|
|
|
hiiiiiiiiiiiii
just wanna ask if i can open my email via a VB.net Program, simply put my ID and the Password in the application form then that application will access my email and open it
i dont know if u understand what i want exactly, its just a form has two textboxs and one button, one textbox for ID and the second for Password then click that button------------> my email opens.
plz if u know anything help me, tell me and thanx very much for all
|
|
|
|
|
You'll have to explain a little further...
Do you want VB to launch your email program and show you your mail?
Do you want VB to automate your email program to grab your mail for you?
or
Do you want VB to login to your mail server and download, parse, and display the messages for you?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
hi
first of all thanx for ur reply
i wanna it want VB.net to login yo my mail server and then i can browse my mail there
u can say that i dont wanna go to the mail page to enter my ID and password, i want VB take them from a text field and post them to the mail server
for example if i have a mail in yahoo so i dont wanna go to http://mail.yahoo.com to sign in my mail i wanna my program do that and automatically put my ID and password it thier field, and then open my mail
i dont know how to explain, the program has two text field and a button and i write my ID and Password in the textfield and then my program go to the mail server and check my ID and password if they r correct then he open my mail.
hope u understand me and thanx again
|
|
|
|
|
If you wanted to do this on a SMTP mail server, it wouldn't be a problem. You just have to write your own SMTP mail client. Basically, duplicating Outlook Express.
If you wanted to go to Yahoo! mail, not you've got a much more difficult problem. Now your downloading and parsing web pages. You have to pick your mail messages out of the mountain of HTML that comes along with it. You also have to pick out links to attachments and "click" on each on of those to download them. Basically - a nightmare that isn't worth it.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
hi again
i am really happy for ur answers although if i dont get anything from u, just i am happy because of ur answers.
i realy dont understand how is that can be done
if u can tell me which library should i import or which components shuld i use or if u can write a general or some sentances thats help me in that
the problem is how to implement the function which take the ID and the Password and send them to the yahoo mail server or hotmail server.(if the way to do this is different let us talk about yahoo )
i made a search in google about that and i found some components thats deal with emails but i didnt find what i want in them, they check the domain and the i ID but they dont connect to the mail and open it i i dont think they do that because they dont ask for the Password !!!!!
if u wanna i can send the Project inteface, it may help u what i want exactly.
if u can just tell me how can i implement these sentances and thanx
with my honor and respect to u
Mdallal
|
|
|
|
|
hi dudes !
i have a problem that i want to generate dynamic TextBoxes / Labels for my software .
for e.g.
if i write a query in a textbox like " Select * from Table1 "
it should generate a data report with all the fields in Tabel1 . the problem is data report is not helping me to generate new controls on runtime.
i know crystal report can handle it but i need to solve it in data reports for vb 6.0
looking for ur replys
Work Hard and Test your Luck
|
|
|
|
|
Hard to tell much from the limited information given, but ...
Either your textbox is not bound properly, or it is not in the right place. The VB6 DataReport only has one section that will actually create entries dynamically in a "repeater" fashion - the "Detail" section. Textboxes placed anywhere else can be databound but not to multiple entry tables.
Robert
|
|
|
|