|
i have a windowform with employee image, Firstname and other data. I can save the image of the employee(when loaded into the image control) but when i dont load the picture in the image control it flags error
t.aransiola
|
|
|
|
|
And the error would be ...??? What about the code that's throwing it??
You only use a PictureBox to show an image, not to store it. And I'm not real thrilled with the idea of even using a PictureBox in most cases.
You do NOT do something like this:
PictureBox1.Image.Save...
|
|
|
|
|
instead of saving a blank picture box why not save a default image such as the company logo or such like. you can trap the error then load the default picture on this error.
|
|
|
|
|
Iwant the Image Field remain Null for those that doesnt have picture. saving a default image in the database will impact the db
thanks
t.aransiola
|
|
|
|
|
The picturebox should be there to show a picture, not to store one. If the database doesn't have a picture, you can either choose set the PictureBox's Image property to Nothing, or you can show a blank image or silohette image.
It appears you already have a picture in an Image object. After all, you have to set the PictureBox's image property to it so it shows up. So, you can save the image data to your database from the original image object, without using any of the properties of the PictureBox.
|
|
|
|
|
I have a MDI WIndow with treeview on the left,listview on the right with a splitter separating them
I want to open my other forms at a particular cordinate but its not working. i did something like this
dim myForm as New Invoice
myForm.left = listview.left
myForm.top=listview.top
myForm.show
the form wasnt positioned at where iwant it to be
pls help
t.aransiola
|
|
|
|
|
You used the coordinates of the listview, which are relative to it's parent container, not the screen.
So, the form being contained by nothing, used the coordinates relative to the desktop, not a window in your application.
|
|
|
|
|
pls assist with code snippet.
The listview is on Mdimain window. Now i want the other windows cordinattes to be using the listview cordinates
how do i get an object's reference cordinates in vb.net
t.aransiola
|
|
|
|
|
aransiola wrote: The listview is on Mdimain window. Now i want the other windows cordinattes to be using the listview cordinates
Since you haven't said anything about the parent container for this second form, I'm assuming you're not setting a parent window for the form. All you have to do is map the location of the ListView to Screen coordinates and use that result as the location for the new form.
Dim newLocation As Point = ListView1.PointToScreen(ListView1.Location)
Dim newForm As New Form2()
newForm.Location = newLocation
|
|
|
|
|
I ran into something simular last year and I think the problem was that you have to 'show' the form before setting the borders:
aransiola wrote: dim myForm as New Invoice
myForm.show
myForm.left = listview.left
myForm.top=listview.top
If my help was helpfull let me know, if not let me know why.
The only way we learn is by making mistakes.
|
|
|
|
|
The code as shown below worked for non-modal window form
but did not position modal window forms. even setting the cordinates before showing the window form
dim myForm as New Invoice
myForm.show
myForm.left = listview.left
myForm.top=listview.top
any further discoveries to positioning modal forms will be appreciated.
thanks
thank u
t.aransiola
|
|
|
|
|
Hi,
I got a downloader program form internet but it was made in C# . I converted it to VB.NET . There is no errors in the code , but it isn't working ! Here is the few code form the whole project which is not working:
Imports System.IO<br />
Imports System.Net<br />
Imports System.Text<br />
Imports System<br />
Imports System.Collections.Generic<br />
Imports System.ComponentModel<br />
Imports System.Data<br />
Imports System.Drawing<br />
<br />
Imports System.Windows.Forms<br />
<br />
Imports System.Threading<br />
Public Class Download<br />
Private thrDownload As Thread<br />
' The stream of data retrieved from the web server<br />
Private strResponse As Stream<br />
' The stream of data that we write to the harddrive<br />
Private strLocal As Stream<br />
' The request to the web server for file information<br />
Private webRequest As HttpWebRequest<br />
' The response from the web server containing information about the file<br />
Private webResponse As HttpWebResponse<br />
' The progress of the download in percentage<br />
Private Shared PercentProgress As Integer<br />
' The delegate which we will call from the thread to update the form<br />
Private Delegate Sub UpdateProgessCallback(ByVal BytesRead As Int64, ByVal TotalBytes As Int64)<br />
' When to pause<br />
Private goPause As Boolean = False<br />
Private Sub Download(ByVal startPoint As Object)<br />
Try<br />
<br />
Dim startPointInt As Integer = Convert.ToInt32(startPoint)<br />
' Create a request to the file we are downloading<br />
webRequest = DirectCast(Net.WebRequest.Create("http://dl.google.com/picasa/picasaweb-current-setup.exe"), HttpWebRequest)<br />
' Set the starting point of the request<br />
webRequest.AddRange(startPointInt)<br />
<br />
' Set default authentication for retrieving the file<br />
webRequest.Credentials = CredentialCache.DefaultCredentials<br />
' Retrieve the response from the server<br />
webResponse = DirectCast(webRequest.GetResponse(), HttpWebResponse)<br />
' Ask the server for the file size and store it<br />
Dim fileSize As Int64 = webResponse.ContentLength<br />
<br />
' Open the URL for download <br />
strResponse = webResponse.GetResponseStream()<br />
<br />
' Create a new file stream where we will be saving the data (local drive)<br />
If startPointInt = 0 Then<br />
strLocal = New FileStream("C:\", FileMode.Create, FileAccess.Write, FileShare.None)<br />
Else<br />
strLocal = New FileStream("C:\", FileMode.Append, FileAccess.Write, FileShare.None)<br />
End If<br />
<br />
' It will store the current number of bytes we retrieved from the server<br />
Dim bytesSize As Integer = 0<br />
' A buffer for storing and writing the data retrieved from the server<br />
Dim downBuffer As Byte() = New Byte(2047) {}<br />
<br />
' Loop through the buffer until the buffer is empty<br />
While (bytesSize = strResponse.Read(downBuffer, 0, downBuffer.Length)) > 0<br />
' Write the data from the buffer to the local hard drive<br />
strLocal.Write(downBuffer, 0, bytesSize)<br />
' Invoke the method that updates the form's label and progress bar<br />
' Me.Invoke(New UpdateProgessCallback(Me.UpdateProgress), New Object() {strLocal.Length, fileSize + startPointInt})<br />
<br />
If goPause = True Then<br />
Exit While<br />
End If<br />
End While<br />
Finally<br />
' When the above code has ended, close the streams<br />
strResponse.Close()<br />
strLocal.Close()<br />
End Try<br />
End Sub<br />
<br />
<br />
<br />
End Class<br />
Any suggestions will be thankful.
Dan.
|
|
|
|
|
Unlike C#, VB.NET doesn't allow variable assignment within a While loop header. You should modify your code to take account of this language difference.
Paul Marfleet
|
|
|
|
|
First, please use the <pre> tags when posting large snippets of code. It helps keep the formatting and makes it much easier to read.
Secondly, why are you converting the code? If the original project was written properly, you should be able to include the C# project in your solution or compile it separately and include the reference in your VB project to the DLL.
There are already several file downloader components here on CP that I know will work with VB code in the manner I describe above. You can check out this one[^] as a start.
|
|
|
|
|
Scott Dorman wrote: First, please use the "pre" tags when posting large snippets of code. It helps keep the formatting and makes it much easier to read.
Sorry , I was my mistake .:->
You suggested the perfect suggestion. Thanks.
|
|
|
|
|
Dan`M wrote: Sorry , I was my mistake
No problem. Just wanted to let you know for the future.
Dan`M wrote: You suggested the perfect suggestion. Thanks.
You're welcome.
|
|
|
|
|
Hi.I'm David Dlaka.
The Problem
Im making a projet with text files.There is a textbox in which you type some text.There are 3 buttons.Save,Open and Close.I'm having problem with the Save function.When you click save,an inputbox pops out and you need to type a code in it,so your files are secured.In the programming code the saving code is defined as "Short" ,but when i save it says:"Cast from string "mycode" to type 'Short' is not valid".Even if i change short with long,string integer or similar,it says tthe same thing!What do i do?
The code
This is the whole code
PrivateSub mnuSaveAsItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles mnuSaveAsItem.Click<br />
Dim letter As Char Dim lngCode As Short <br />
Dim i, charsInFile As Long <br />
Dim Code As Short <br />
SaveFileDialog1.Filter = "Text files (*.txt)|*.txt"<br />
SaveFileDialog1.ShowDialog()<br />
If SaveFileDialog1.FileName <> "" Then <br />
lngCode = InputBox("Insert code to code the file.")<br />
If lngCode = "" Then Exit Sub <br />
Code = charsInFile = Txtnote.Text.Length<br />
FileOpen(1, SaveFileDialog1.FileName, OpenMode.Output)<br />
letter = Txtnote.Text.Substring(i, 1)<br />
Print(1, Asc(letter) <br />
CShort(lngCode)For i = 0 To charsInFile - 1Xor Code)Next <br />
FileClose(1)<br />
mnuCloseItem.Enabled = True End If End Sub Private Sub mnuCloseItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCloseItem.ClickDim a As String <br />
a = InputBox("Did you save?")<br />
If a = ("Yes") Or a = ("yes") Then <br />
Txtnote.Text = ""<br />
ElseIf a = ("No") Or a = ("no") Then <br />
MsgBox("Don't forget to save your file first")<br />
Else <br />
MsgBox("Please answer with ""Yes"" or ""No""")<br />
End If <br />
End Sub <br />
Private Sub mnuOpenItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuOpenItem.ClickDim CelTekst, LinijaNaTekst As String Dim lngCode As Short <br />
OpenFileDialog1.Filter = "Text files (*.TXT)|*.TXT"<br />
OpenFileDialog1.ShowDialog()<br />
Dim Code As Short If OpenFileDialog1.FileName <> "" Then Try <br />
FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)<br />
LinijaNaTekst = LineInput(1)<br />
CelTekst = CelTekst & LinijaNaTekst & vbCrLf<br />
Do Until EOF(1)Loop <br />
Txtnote.Text = CelTekst<br />
Txtnote.Select(1, 0)<br />
Txtnote.Enabled = True <br />
mnuCloseItem.Enabled = True Catch <br />
MsgBox("Error with opening the file.")<br />
Finally <br />
FileClose(1)<br />
End Try <br />
End If <br />
End Sub Plese tell me what is wrong???
David Dlaka
|
|
|
|
|
Your code is really difficult to understand. You should modify your message and use <pre> tags to format the code to make it readable.
Paul Marfleet
|
|
|
|
|
As Paul already said, please use the <pre> tags when posting large blocks of code like this.
The problem is that the InputBox method returns a String value and there is not an implicit conversion between a String and a Short . Your best best is to do something like this:
Dim securityCodeInput As String
Dim lngCode As Short
Dim returnValue As Boolean
securityCodeInput = InputBox("Insert code to code the file.")
returnValue = ShortInt16.TryParse(securityCodeInput, lngCode) The TryParse will return false if the input was not numeric and lngCode will be 0; otherwise, it will return true and lngCode will be the numeric value.
Also, you really should consider not using the Hungarian style notation for variable names. Since .NET is a strongly typed language it isn't really adding any value to your code. Especially in this case, since your variable name already doesn't match your data type. lngCode implies that it is a Long data type when in reality it is a Short .
[modification]Sorry, the Short.TryParse should have been Int16.TryParse .[/modification]
|
|
|
|
|
I am trying to send a data to the printer when i click a button.
I donot want to print. only send the data to the printer.
I need to send this text to the printer: @PJL REGISTRATION=1000000000. Like this i have 10 lines of text.
Here is the code i am using:
option Explicit
Private Type DOCINFO
pDocName As String
pOutputFile As String
pDatatype As String
End Type
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function EndDocPrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function EndPagePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function OpenPrinter Lib "winspool.drv" Alias _
"OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, _
ByVal pDefault As Long) As Long
Private Declare Function StartDocPrinter Lib "winspool.drv" Alias _
"StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, _
pDocInfo As DOCINFO) As Long
Private Declare Function StartPagePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function WritePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, _
pcWritten As Long) As Long
Private Sub Command1_Click()
Dim lhPrinter As Long
Dim lReturn As Long
Dim lpcWritten As Long
Dim lDoc As Long
Dim sWrittenData As String
Dim MyDocInfo As DOCINFO
lReturn = OpenPrinter(Printer.DeviceName, lhPrinter, 0)
If lReturn = 0 Then
MsgBox "The Printer Name you typed wasn't recognized."
Exit Sub
End If
MyDocInfo.pDocName = "AAAAAA"
MyDocInfo.pOutputFile = vbNullString
MyDocInfo.pDatatype = vbNullString
lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)
Call StartPagePrinter(lhPrinter)
lReturn = EndPagePrinter(lhPrinter)
lReturn = EndDocPrinter(lhPrinter)
lReturn = ClosePrinter(lhPrinter)
End Sub
|
|
|
|
|
You copied the example off of MSDN exactly, except for the two lines that actually sent the data:
sWrittenData = "How's that for Magic !!!!" & vbFormFeed
lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, _
Len(sWrittenData), lpcWritten)
In you're case, that would be:
sWrittenData = "@PJL REGISTRATION=1000000000" & vbCrLf
lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, _
Len(sWrittenData), lpcWritten)
|
|
|
|
|
Thanks Dave, I copied from MSDN. But i have a problem here. I have some ASCII charcters in my text. Instead i want to send the file when i click on the button. How will i do that. I need to include the file part of the exe.
I am new to VB.
Thanks
|
|
|
|
|
jkonduru wrote: Instead i want to send the file when i click on the button. How will i do that
So?? Read the file line-by-line and send each line to the using the same method in those two lines you missed.
|
|
|
|
|
some of the lines are in ASCII Characters, cannot be readable. Instead of reading line by line, is it possible specify that file name and send the file to the printer. Is it possible to include the file part of the project?
Thanks
|
|
|
|
|
jkonduru wrote: some of the lines are in ASCII Characters
So??
jkonduru wrote: cannot be readable
By a human that is. The file operations have no problem with it.
jkonduru wrote: Instead of reading line by line, is it possible specify that file name and send the file to the printer.
No. You're code has to open the file, and read a line, send it, read a line, send it, read a line, read it, ..., until the end of the file. VB6 doesn't do this for you. You have to write the code to do it.
jkonduru wrote: Is it possible to include the file part of the project?
It would just be a "content" file. It won't get compiled into the application. I forgot how to include that stuff in the Setup and Deployment wizard. It's been over 6 years since I abandoned my support for VB6.
|
|
|
|
|