|
Read this reply from Dave[^] again, post your code and we can have a look at what you are doing wrong.
...Steve
"Give a man a fish and you've fed him for a day. Teach him how to fish and you've fed him for life." (Translation: I'll show you the way, but not write the code for you.) I read that somewhere once
|
|
|
|
|
Public Sub renameFolder(ByVal oldFolder As String, ByVal newFolder As String)
Dim folder As New IO.DirectoryInfo(oldFolder)
folder.MoveTo(newFolder)
'The other method
'Dim folder As IO.Directory
'folder.Move(oldFolder, newFolder)
End Sub
|
|
|
|
|
Works on my machine, but you have no error handling at all so we don't know what the problem really is. Use this code to report and display any exception that's thrown...
Public Sub renameFolder(ByVal oldFolder As String, ByVal newFolder As String)
Dim folder As New IO.DirectoryInfo(oldFolder)
Try
folder.MoveTo(newFolder)
'The other method
'Dim folder As IO.Directory
'folder.Move(oldFolder, newFolder)
Catch ex As Exception
'
' Inspect the ex object to determine the reason
' for the error.
'
MsgBox(ex.Message.ToString, MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, "MoveTo Failed")
Finally
'
End Try
End Sub
...Steve
"Give a man a fish and you've fed him for a day. Teach him how to fish and you've fed him for life." (Translation: I'll show you the way, but not write the code for you.) I read that somewhere once
|
|
|
|
|
now it works. but i can't understand, this code didn't run like now. it had just created an empty folder. (Thanks GOD) now it runs..
thanks for your patience and interests....
|
|
|
|
|
dungeonsdarknight wrote: now it works. but i can't understand, this code didn't run like now
Maybe, just maybe, the old folder was in use at the time you ran the code at first and threw an exception which you did not catch. If so, you may run into the problem in the future so some exception handling is highly recommended.
...Steve
"Give a man a fish and you've fed him for a day. Teach him how to fish and you've fed him for life." (Translation: I'll show you the way, but not write the code for you.) I read that somewhere once
|
|
|
|
|
Like Steve said, ths code works. The problem you're probably having is that you can't rename a folder until all the filers in that folder have been closed by whatever processes are using them.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
My project takes a screenshot twice per second and inserts it into a picture box. During this, I am using System.Drawing to draw using the mouse. I am trying to make the label that I draw on transparent so the screenshot in the picture box will be visible. I only want what I draw visible in the label. The following code will show you my technique to draw on the label.
Dim startX As Int16
Dim endX As Int16
Dim startY As Int16
Dim endY As Int16
Dim m_Drawing As Boolean
Dim EraserOn As Boolean
Dim MyPen As New Pen(Color.Black)
Private Sub lblPaint_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles lblPaint.Paint
Dim g As Graphics = e.Graphics
Dim A, B, X, Y As Integer
If EraserOn Then
g.Clear(System.Drawing.Color.White)
EraserOn = False
Return
End If
If radLine.Checked = True Then
g.DrawLine(MyPen, New Point(startX, startY), New Point(endX, endY))
ElseIf radBox.Checked = True Then
If (endX - startX) >= 0 Then
A = endX - startX
X = startX
Else
A = startX - endX
X = endX
End If
If (endY - startY) >= 0 Then
B = endY - startY
Y = startY
Else
B = startY - endY
Y = endY
End If
g.DrawRectangle(MyPen, New Rectangle(X, Y, A, B))
End If
End Sub
Private Sub lblPaint_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblPaint.MouseDown
If radFree.Checked = True Then
m_Drawing = True
End If
startX = e.X
startY = e.Y
End Sub
Private Sub lblPaint_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblPaint.MouseUp
endX = e.X
endY = e.Y
If m_Drawing = False Then
lblPaint.Refresh()
End If
m_Drawing = False
End Sub
Private Sub lblPaint_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblPaint.MouseMove
If m_Drawing Then
lblPaint.CreateGraphics().DrawLine(MyPen, startX, startY, e.X, e.Y)
startX = e.X
startY = e.Y
End If
End Sub
The lblPaint label is set to transparent. What can I do to make it transparent while I draw but only display what I draw?
-- modified at 21:08 Wednesday 1st February, 2006
|
|
|
|
|
What are you doing to redraw your lines AFTER the mouse is released and the label has to be redrawn? Nothing!
You're not tracking what lines need to be redrawn on the label control when the label is, in your code, .Refresh ed.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
If I put lblPaint.Refresh in the MouseUp event it will erase what I've drawn. I'm not sure what you're talking about. How can I correct my problem
|
|
|
|
|
Yeah, it erases what you've drawn. You code isn't REDRAWING it in the labels Paint event! Your code has to store the coordinates of these lines, somewhere, for each line that is drawn. In the labels paint event, it must redraw all those lines every time there is a WM_PAINT message from windows. You'll get this message many, many times, even if you're not dragging the mouse around drawing new lines. So, yes, you're code has to be prepared to coninuously redraw the lines you've drawn and stored.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I can't think of any other way other than to store each coordinate in an array. But the array would utilize lots of memory after some time would it not? And also performance would not be there.
|
|
|
|
|
You could store it them in an array, or whatever list object you want. Memory use will be minimial since your ownly storing 4 32-bit numbers per line. Performance is not an issue unless you're going to be drawing thousands of lines on this control.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I figured out a way but my RAM is drained and then the garbage collector empties and then it fills back up. Same process over and over.
Are there any examples that demonstrate how to redraw?
|
|
|
|
|
It's not as hard as it seems. It just takes a bit of planning to get it right, but what you do depends heavily on what you want the control to do and look like.
Google for "Control Custom Painting[^]" and you'll come up with all kinds of articles and examples.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I created a program to take a screenshot twice every second. It loads into a picture box as a bitmap. I then have another portion of the application that will allow me to draw (freehand) on a label. I am trying to make the label transparent so I can draw on the label on top of the constantly refreshing picture box.
For some reason, when I draw the label is grayed out. I am using System.Drawing. What am I doing wrong. Some of my drawing code is as follows:
Imports System.Drawing
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents btnExit As System.Windows.Forms.Button
Friend WithEvents radLine As System.Windows.Forms.RadioButton
Friend WithEvents radBox As System.Windows.Forms.RadioButton
Friend WithEvents radFree As System.Windows.Forms.RadioButton
Friend WithEvents grpDrawTool As System.Windows.Forms.GroupBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents lstColor As System.Windows.Forms.ListBox
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents numWidth As System.Windows.Forms.NumericUpDown
Friend WithEvents TrackBar1 As System.Windows.Forms.TrackBar
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
Friend WithEvents lblPaint As System.Windows.Forms.Label
Friend WithEvents btnClear As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.btnExit = New System.Windows.Forms.Button
Me.grpDrawTool = New System.Windows.Forms.GroupBox
Me.radFree = New System.Windows.Forms.RadioButton
Me.radBox = New System.Windows.Forms.RadioButton
Me.radLine = New System.Windows.Forms.RadioButton
Me.Label1 = New System.Windows.Forms.Label
Me.lstColor = New System.Windows.Forms.ListBox
Me.Label2 = New System.Windows.Forms.Label
Me.numWidth = New System.Windows.Forms.NumericUpDown
Me.btnClear = New System.Windows.Forms.Button
Me.TrackBar1 = New System.Windows.Forms.TrackBar
Me.Button1 = New System.Windows.Forms.Button
Me.PictureBox1 = New System.Windows.Forms.PictureBox
Me.lblPaint = New System.Windows.Forms.Label
Me.grpDrawTool.SuspendLayout()
CType(Me.numWidth, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TrackBar1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'btnExit
'
Me.btnExit.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.btnExit.Location = New System.Drawing.Point(310, 182)
Me.btnExit.Name = "btnExit"
Me.btnExit.Size = New System.Drawing.Size(50, 23)
Me.btnExit.TabIndex = 1
Me.btnExit.Text = "Exit"
'
'grpDrawTool
'
Me.grpDrawTool.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.grpDrawTool.Controls.Add(Me.radFree)
Me.grpDrawTool.Controls.Add(Me.radBox)
Me.grpDrawTool.Controls.Add(Me.radLine)
Me.grpDrawTool.Location = New System.Drawing.Point(240, 24)
Me.grpDrawTool.Name = "grpDrawTool"
Me.grpDrawTool.Size = New System.Drawing.Size(128, 120)
Me.grpDrawTool.TabIndex = 2
Me.grpDrawTool.TabStop = False
Me.grpDrawTool.Text = "Drawing Tools"
'
'radFree
'
Me.radFree.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.radFree.Location = New System.Drawing.Point(16, 88)
Me.radFree.Name = "radFree"
Me.radFree.Size = New System.Drawing.Size(104, 24)
Me.radFree.TabIndex = 2
Me.radFree.Text = "Freehand"
'
'radBox
'
Me.radBox.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.radBox.Location = New System.Drawing.Point(16, 56)
Me.radBox.Name = "radBox"
Me.radBox.Size = New System.Drawing.Size(104, 24)
Me.radBox.TabIndex = 1
Me.radBox.Text = "Box"
'
'radLine
'
Me.radLine.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.radLine.Checked = True
Me.radLine.Location = New System.Drawing.Point(16, 24)
Me.radLine.Name = "radLine"
Me.radLine.Size = New System.Drawing.Size(104, 24)
Me.radLine.TabIndex = 0
Me.radLine.TabStop = True
Me.radLine.Text = "Line"
'
'Label1
'
Me.Label1.Anchor = System.Windows.Forms.AnchorStyles.Right
Me.Label1.Location = New System.Drawing.Point(253, 150)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(64, 16)
Me.Label1.TabIndex = 4
Me.Label1.Text = "Tool Width"
'
'lstColor
'
Me.lstColor.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.lstColor.Items.AddRange(New Object() {"Black", "Blue", "Green", "Yellow", "Red"})
Me.lstColor.Location = New System.Drawing.Point(248, 224)
Me.lstColor.Name = "lstColor"
Me.lstColor.Size = New System.Drawing.Size(120, 95)
Me.lstColor.TabIndex = 5
'
'Label2
'
Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.Label2.Location = New System.Drawing.Point(248, 208)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(80, 16)
Me.Label2.TabIndex = 6
Me.Label2.Text = "Choose Color"
'
'numWidth
'
Me.numWidth.Location = New System.Drawing.Point(320, 150)
Me.numWidth.Maximum = New Decimal(New Integer() {9, 0, 0, 0})
Me.numWidth.Minimum = New Decimal(New Integer() {1, 0, 0, 0})
Me.numWidth.Name = "numWidth"
Me.numWidth.Size = New System.Drawing.Size(32, 20)
Me.numWidth.TabIndex = 7
Me.numWidth.Value = New Decimal(New Integer() {2, 0, 0, 0})
'
'btnClear
'
Me.btnClear.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.btnClear.BackColor = System.Drawing.SystemColors.Control
Me.btnClear.Location = New System.Drawing.Point(244, 182)
Me.btnClear.Name = "btnClear"
Me.btnClear.Size = New System.Drawing.Size(60, 23)
Me.btnClear.TabIndex = 8
Me.btnClear.Text = "Clear"
Me.btnClear.UseVisualStyleBackColor = False
'
'TrackBar1
'
Me.TrackBar1.Location = New System.Drawing.Point(-3, 319)
Me.TrackBar1.Maximum = 100
Me.TrackBar1.Minimum = 10
Me.TrackBar1.Name = "TrackBar1"
Me.TrackBar1.Size = New System.Drawing.Size(202, 42)
Me.TrackBar1.SmallChange = 5
Me.TrackBar1.TabIndex = 9
Me.TrackBar1.Value = 10
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(251, 325)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(75, 23)
Me.Button1.TabIndex = 10
Me.Button1.Text = "Button1"
Me.Button1.UseVisualStyleBackColor = True
'
'PictureBox1
'
Me.PictureBox1.BackColor = System.Drawing.Color.Transparent
Me.PictureBox1.Location = New System.Drawing.Point(0, 0)
Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.Size = New System.Drawing.Size(224, 184)
Me.PictureBox1.TabIndex = 11
Me.PictureBox1.TabStop = False
'
'lblPaint
'
Me.lblPaint.BackColor = System.Drawing.Color.Transparent
Me.lblPaint.Location = New System.Drawing.Point(12, 37)
Me.lblPaint.Name = "lblPaint"
Me.lblPaint.Size = New System.Drawing.Size(208, 224)
Me.lblPaint.TabIndex = 0
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(384, 349)
Me.Controls.Add(Me.lblPaint)
Me.Controls.Add(Me.PictureBox1)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.TrackBar1)
Me.Controls.Add(Me.btnClear)
Me.Controls.Add(Me.numWidth)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.lstColor)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.grpDrawTool)
Me.Controls.Add(Me.btnExit)
Me.MinimumSize = New System.Drawing.Size(392, 376)
Me.Name = "Form1"
Me.Text = "Drawing Program"
Me.grpDrawTool.ResumeLayout(False)
CType(Me.numWidth, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TrackBar1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
#End Region
Dim startX As Int16
Dim endX As Int16
Dim startY As Int16
Dim endY As Int16
Dim m_Drawing As Boolean
Dim EraserOn As Boolean
Dim MyPen As New Pen(Color.Black)
Private Sub lblPaint_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles lblPaint.Paint
Dim g As Graphics = e.Graphics
Dim A, B, X, Y As Integer
If EraserOn Then
g.Clear(System.Drawing.Color.White)
EraserOn = False
Return
End If
If radLine.Checked = True Then
g.DrawLine(MyPen, New Point(startX, startY), New Point(endX, endY))
ElseIf radBox.Checked = True Then
If (endX - startX) >= 0 Then
A = endX - startX
X = startX
Else
A = startX - endX
X = endX
End If
If (endY - startY) >= 0 Then
B = endY - startY
Y = startY
Else
B = startY - endY
Y = endY
End If
g.DrawRectangle(MyPen, New Rectangle(X, Y, A, B))
End If
End Sub
Private Sub lblPaint_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblPaint.MouseDown
If radFree.Checked = True Then
m_Drawing = True
End If
startX = e.X
startY = e.Y
End Sub
Private Sub lblPaint_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblPaint.MouseUp
endX = e.X
endY = e.Y
If m_Drawing = False Then
lblPaint.Refresh()
End If
m_Drawing = False
End Sub
Private Sub lblPaint_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblPaint.MouseMove
If m_Drawing Then
lblPaint.CreateGraphics().DrawLine(MyPen, startX, startY, e.X, e.Y)
startX = e.X
startY = e.Y
End If
End Sub
lblPaint is the label. It's color property is set to "Web Transparent". radLine, radFree are radio buttons to draw different types of shapes with the mouse.
How can I alter my code to make the label transparent. Or should I approach this using another method?
Thank you!
|
|
|
|
|
If you want anyone to look at your code, just post the code that is relevant to the problem. Most of the code you posted is auto-generated, and most of that is totally irrelevant.
---
b { font-weight: normal; }
|
|
|
|
|
I'm currently working on an application that needs to go to a specific folder and open a file, read it and close it, then go to the next file, read it, then close it. Can someone provide some reading on how I can do this with all the files in the folder and stop when the program reaches the last file. The number of files in the folder is not constant. Thanks.
George
|
|
|
|
|
Your probably looking for <a href="http://msdn2.microsoft.com/en-us/library/07wt70x2.aspx" rel="nofollow">Directory.GetFiles</a>[<a href="http://msdn2.microsoft.com/en-us/library/07wt70x2.aspx" target="_blank" rel="nofollow" title="New Window">^</a>] in the System.Io namespace. GetFiles will return an array of Strings with the filenames of everything in the directory. You just enumerate the collection just like any other.
Imports System.Io
.
.
.
For Each filename As String In Directory.GetFiles(targetDirectory)
' Your code to process the file goes here.
Next
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thanks. I'll give that a try.
George
|
|
|
|
|
Hi! i'm developing an application under VB.NET...while i test it on my computer, everything works fine...but when i try to open it on another computer, an error occurs...the error says something like:
"The application attempted to perform an operation not allowed by the security policy. The operation required the SecurityException.....etc"
Then it says that i should grant the application using the .NET security administration tool...do i have to install this tool on EVERY machine in which i want to run my app??? how do i solve this issue???
thanks!!!
|
|
|
|
|
You're apparently trying to run the app from a network drive/share. Network sources are not trusted and run under greater security control that if the code was launched from a local hard drive.
Yes, you'll have to either:
a) Install the app locally on each machine.
b) Modify the security trusts on each machine to tell it to trust network-sourced code. How you do this depends on your networking environment, but is usually done with policies.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
you're right...i was mapped into a drive and running the app from that drive...now, my new question is...
the app is like a resources monitor, that is, it warns an administrator when, for example, some directory has grown a lot in size, or when the free space of one of it disks is low...etc...
the app runs on a server, and monitors a lot of networked PC's and servers...will i have to install the tool on every monitored pc???? because i think it's not very viable to do that, since there are more than 500 pc's to monitor...
thanks!!
|
|
|
|
|
Like I said, you have two options.
1) Either install it on all the PC's. I hope you have a software distribution system...
or
2) You'll have to modify the security policies to tell the machines to trust network-sourced code.
I suggest you read up on Code Access Security[^], specifically Security Policy Best Practices[^].
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hi all, im having a little problem with this method, im merging two datasets (same table, im just trying to refresh a table, just in case it has been changed by someone else), and it duplicates rows, i think it must be because of the primary keys, Arent primary keys supossed to be in the dataset since I opened the table?? Here is my code:
*OpenTbl is just a function that returns a datatable
ds1.Tables.Add(OpenTbl("SELECT * FROM Adscripciones", "Adscripciones"))
ds2.Tables.Add(OpenTbl("SELECT * FROM Adscripciones", "Adscripciones"))
ds1.Merge(ds2)
Me.DataGridView1.DataSource = ds1.Tables("Adscripciones")
===========The previous code duplicates rows
ds1.Tables.Add(OpenTbl("SELECT * FROM Adscripciones", "Adscripciones"))
Dim Key(1) As DataColumn
Key(0) = ds1.Tables(0).Columns(0)
ds1.Tables(0).PrimaryKey = Key
ds2.Tables.Add(OpenTbl("SELECT * FROM Adscripciones", "Adscripciones"))
ds1.Merge(ds2)
Me.DataGridView1.DataSource = ds1.Tables("Adscripciones")
==========This wont duplicate, but i have to specify primary keys, and i wouldnt like that since im trying to make a generic routine to open tables.
Is there any way to get primary keys information and use it for the merge method without specifying primary keys??
I hope anyone can help me, Ill apreciate it
Thank You
Alexei
|
|
|
|
|
I forgot to say im using SQL 2000 and VB.NET 2005
|
|
|
|
|