|
I think you're looking for the Win32 API function CreateProcessWithLogonW[^].
Dave Kreskowiak
Microsoft MVP
Visual Developer - Visual Basic 2006, 2007
|
|
|
|
|
yes,this is the one, thanks
|
|
|
|
|
I have an array of a structure similar to below:
Public Structure MyStructure
Public MyString as string
Public MyInt1 as Int
Public MyInt2 as int
end structure
Dim StructArray ()
I want a function that will sort the data by the MyString field.
Any suggestions?
Thanks in advance!
David Wilkes
|
|
|
|
|
You can use the sort method found in the Array class. You can implement IComparable in your structure. Basically this allows objects of type MyStructure to be compared. Here is a simple example.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim people As Person() = {New Person("Bob", "Smith"), New Person("Chris", "Adams")}
Array.Sort(people)
For Each p As Person In people
Console.WriteLine(p.FirstName & ":" & p.LastName)
Next
End Sub
End Class
Public Structure Person
Implements IComparable(Of Person)
Public FirstName As String
Public LastName As String
Public Sub New(ByVal first As String, ByVal last As String)
FirstName = first
LastName = last
End Sub
Public Function CompareTo(ByVal other As Person) As Integer Implements System.IComparable(Of Person).CompareTo
Return String.Compare(Me.LastName, other.LastName)
End Function
End Structure This will sort alphabetically by the LastName field. If you want to sort in descending order you could first call sort to put them in ascending order and then call array.reverse(YourArray) to put them in descedning order. There are other ways to allow for multiple different sorts. If you want to learn more about it try looking up the interfaces Icomparer, and Icomparable.
|
|
|
|
|
I am trying to see if there is way to use the TimeSpan class to see if one timespan overlaps another. Maybe I am using the wrong class. For example, if I have a start date of 1/1/2007 and an End date of 4/1/2007 I want to know if that range overlaps another (example: 11/1/2006 to 3/1/2007) And if it does, by how many, minutes, days... etc...
Does any one have any ideas?
Thanks!
|
|
|
|
|
Do like this:
if s1>s2 and e1<e2 Then
s1-e1 occurs inbetween s2-e2(So, Overlapping=e1-s1+1)
elseif s1<s2 and e1>e2 Then
s2-e2 occurs inbetween s1-e1(So, Overlapping=e2-s2+1)
elseif s1 > s2 and s1 < e2 then
Overlapping=e2-s1+1
elseif e1>s2 and e1<e2
Overlapping=e1-s2+1
else
Overlapping=0
Use appropriate classes to compare 2 dates.
Regards,
Arun Kumar.A
|
|
|
|
|
Hi there,
I've been messing with the DataGridView component and it's really quite cool what you can do with it. I have it working for the most part, apart from one thing. I can't seem to get filtering working. The code I have is fort testing purposes only, basically just to get to know how to work with the DGV. I did notice that bSource.SupportsFiltering was set to False and I have no idea how to change that.
Private Sub Dialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim bList As New System.ComponentModel.BindingList(Of ListItem)
Dim bSource As New BindingSource()
bSource.DataSource = bList
' ListItem has Name, ID and Important properties, which are String, Integer and Boolean
' respectively.
bList.Add(New ListItem("Item 1", 1, True))
bList.Add(New ListItem("Item 2", 2, False))
bList.Add(New ListItem("Item 3", 3, True))
bList.Add(New ListItem("Item 4", 4, False))
DataGridView1.DataSource = bSource
DataGridView1.ColumnHeadersVisible = False
' This makes sure that only 'Important' and 'Name' are shown and displayed
' in the correct order
DataGridView1.Columns(2).DisplayIndex = 0
DataGridView1.Columns(1).DisplayIndex = 1
DataGridView1.Columns(0).DisplayIndex = 2
DataGridView1.Columns(0).Visible = False
DataGridView1.Columns(2).Width = 20
DataGridView1.Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
DataGridView1.GridColor = Color.White
DataGridView1.RowHeadersVisible = False
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim bSource As BindingSource = DataGridView1.DataSource
bSource.Filter = "ID == 2"
DataGridView1.Refresh()
End Sub
Basically, to test the filter, I wanted to press a button and then apply the filter and have the DGV display only the results of my filter action. I am sure that once I get the hang of the filtering, I can implement it fully in my main app. Does filtering just not work when using a BindingList as your data backend?
Gr,
Mightor
My sig was stolen by a blind monkey.
|
|
|
|
|
You can't change the SupportsFiltering property. It's a readonly flag that tells you if the datasource the BS is bound to supports filtering. Since you're using a List, no, you can't do filtering. You have to use a data source that DOES support filtering, like a DataSet or DataTable, most likely fed data by an Access or SQL Server database.
Dave Kreskowiak
Microsoft MVP
Visual Developer - Visual Basic 2006, 2007
|
|
|
|
|
Thanks. I've now implemented it with a DataTable which is fed by an XML file downloaded from the Web. It works a treat.
Gr,
Mightor
A diseased chipmunk hid my sig.
|
|
|
|
|
Hi,
I am in the process of converting a VB.Net 2003 to VB.Net 2005 and have come across some errors. Here is one and has anyone come across it and how was it solved.
Private Sub SomeSub(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
Select Case sender.name
Case "Button1"
'Do Something
Case "Button2"
'Do Something
Case Else
'Do Something
End Select
I get this error....
Operands of type Object used in expressions for 'Select', 'Case' statements; runtime errors could occur.
|
|
|
|
|
Easy. sender is passed as Object , which can be anything, including an object that doesn't have a Name property.
Test, then Cast sender to the object type you expect it to be, like Button in your code:
Private Sub SomeSub(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
If TypeOf sender Is Button Then
Dim s As Button = DirectCast(sender, Button)
Select Case s.Name
Case "Button1"
' Do something
Case "Button2"
' Do something
Case Else
' This should never happen, but then again...
End Select
End If
End Sub
Doing this isn't a good idea. Simply renaming a button can cause your code to fail and be pretty difficult to track the problem down. Break your button handlers in their own methods and you'll increase your codes maintainability.
Dave Kreskowiak
Microsoft MVP
Visual Developer - Visual Basic 2006, 2007
|
|
|
|
|
Thanks for the speedy response. Now works a treat.
May have some other questions for the forum as my conversion goes on. Could be good as I imagine loads of other people may ask the same questions.
Thanks again.
|
|
|
|
|
Just a quick question,
What would the syntax be if the handle is KEY UP or MOUSE or DOUBLECLICK?
Would it be the same?
|
|
|
|
|
Same thing. You have to cast the sending object to a type that you expect. It doesn't matter which event the sender fired, just what type the sender is.
Dave Kreskowiak
Microsoft MVP
Visual Developer - Visual Basic 2006, 2007
|
|
|
|
|
Sorry to hassle you but what would it be for keyup, doubleclick or mouseup. Tried a couple of things but no luck. Works perfect for checkbox, button etc. Must be a Friday thing.
|
|
|
|
|
The question doesn't make any sense. What controls are you expecting these events on? The code to convert sender to a known object (control) is exactly the same.
Dave Kreskowiak
Microsoft MVP
Visual Developer - Visual Basic 2006, 2007
|
|
|
|
|
In VB6, it was relatively easy to create a form that would allow the user to access a context-specific help system with hitting the F1 key. All the programmer need do was place a number in the HelpContextID property of the form. Is there anything equivalent in VB.NET?
Rich Feldman
|
|
|
|
|
You might be looking for the Help Provider.
Trinity: Neo... nobody has ever done this before.
Neo: That's why it's going to work.
|
|
|
|
|
I am trying to graph the entire column in the datatable using ZedGraph.
I have found some code on the web and I have tried to modify it to fit my code and the datatable that I have created. Unfortunately it does not work , nor run. It gives me an error when I try to run my code. Can someone please help me resolve this error. this error is located when I try to display the XDataMember and YDataMember.
the error which I get is this:
Quote:
An unhandled exception of type 'System.NullReferenceException' occurred in microsoft.visualbasic.dll
Additional information: Object variable or With block variable not set.
Here is the code that I have:
----------------------------------------------------
Private Sub CreateGraph_DataSource(ByVal ZG1 As ZedGraphControl)
Dim MyPane As GraphPane = New GraphPane
MyPane.Title.Text = "DataSourcePointList Test"
MyPane.XAxis.Title.Text = "Date"
MyPane.YAxis.Title.Text = "Freight Charges ($US)"
'Create a new DataSourcePointList to handle the database connection
Dim dspl As DataSourcePointList = New DataSourcePointList
' Specify the table as the data source
'dspl.DataSource = theKid5.DG135.DataSource.dt135
'The X data will come from the "X" column
dspl.XDataMember = theKid5.DG135.DataSource.r135.Item.dt135.Columns("X")
' The Y data will come from the "Y" column
dspl.YDataMember = theKid5.DG135.DataSource.r135.Item.dt135.Columns("Y")
' Make a curve
Dim MyCurve As LineItem
MyPane.AddCurve("X", dspl, Color.Blue)
'MyCurve.Line.IsVisible = False
' Show the point values. These are derived from the "ShipName" database column,
' which is set as the "Tag" property.
ZG1.IsShowPointValues = True
'Auto set the scale ranges
ZG1.AxisChange()
End Sub
-------------------------------------------
Any help on this would be greatly appreciated. Thanks
--Srig
|
|
|
|
|
hi everyone,
iam creating a set up using the publish wizard.
iam using ini files in my project,as well as some html files also
my application checking the version number from a xml file in a web site.
when it is displaying login form after installing then it is giving unable to find xx.xml file.(xx.xml file is file from which iam checking the version number from a website)
it is also having some htm file also,once i include that xx.xml file and publish then it will displaying message abc.htm file unable to find
if any one can help
warm regards
ravi
|
|
|
|
|
I have a Windows Service written in VB.NET 2005 that consists of an EXE, a private DLL and a shared DLL. I install the EXE and private DLL to the Application Folder and the shared DLL to the GAC. I am installing on a Windows Server 2003 system.
The installation worked fine (or appeared to) when the shared DLL was already in the GAC (because another application installed it there). The first time I tried to do the install on a system where the shared DLL was not in the GAC it failed with an error that indicated that a component was missing.
It appears that when the install has finished copying files and runs InstallUtil to install the EXE file as a Windows Service it fails because it can not find the shared DLL. If I copy the shared DLL to the GAC or the Application Folder prior to the install the error does not occur. If I install the shared DLL to the Application Folder instead of the GAC the error does not occur (except now other applications can not share the DLL). If I install the shared DLL to both the GAC and the Application Folder the error does not occur.
I have adopted the last workaround as a temporary fix but I would like to install a single copy of the shared DLL into the GAC.
Has anyone seen this issue before and/or know of a solution?
BTW The problem does not occur if the exe is not a Windows Service presumably because the installation is not attempting to load any application code during the install.
Terry Porter
|
|
|
|
|
Maybe I read this wrong, but it seems like you think the installutil program is going to install the shared dll in the GAC? I am not sure why you would think this would happen. It would always assume it is there or in the application folder. Maybe I am missing something.
Ben
|
|
|
|
|
I am expecting the Windows Install to install the shared DLL in the GAC before it runs InstallUtil to install the EXE as a Windows Service.
It appears that the Windows Install is running InstallUtil after it has copied the EXE and private DLL to the Application Folder but before it copies the shared DLL to the GAC.
Terry
|
|
|
|
|
Does anyone know how to search for files using windows service in vb.net. I already have the service created, I just need to know how to search for media files. Any ideas?
jds1207
|
|
|
|
|
You are looking for them in a specific directory? If you just want to seach the whole computer that sounds a lot like a virus or spyware.
Imports System.IO
Use the Directory object to get a list of files.
Dim files As String() = Directory.GetFiles("c:\", "*.mp3")
Ben
|
|
|
|