Para retirar o botão de fechar da barra de títulos insira o código a seguir abaixo do Public Class Form1
Private Declare Function
GetSystemMenu Lib
"user32"
(ByVal
hwnd As Integer,
ByVal
bRevert As Integer)
As Integer
Private
Declare
Function
RemoveMenu Lib
"user32"
(ByVal
hMenu As Integer,
ByVal
nPosition As Integer,
ByVal
wFlags As Integer)
As Integer
Private Const
SC_CLOSE = &HF060&
Private Const
MF_BYCOMMAND = &H0&
Insira também a função abaixo:
Function
RemoveXButton(ByVal
iHWND As Integer)
As Integer
Dim
iSysMenu As Integer
iSysMenu = GetSystemMenu(iHWND,
False)
Return
RemoveMenu(iSysMenu, SC_CLOSE, MF_BYCOMMAND)
End Function
E em Form1_load coloque o seguinte comando:
RemoveXButton(Me.Handle())
Para retirar o botão de Maximinizar e Minimizar vá em Propriedades do Form1 e coloque
False em MaximizeBox e MinimizeBox.
Simples, não?
segunda-feira, 26 de setembro de 2011
quarta-feira, 21 de setembro de 2011
Funções para data com o primeiro dia de um mês, último dia de um mês e verificação se o ano é bissexto
Abaixo estão os códigos das funções que devolvem a data com o primeiro dia do
mês, último dia do mês e se um ano é bissexto. Coloque estes códigos em um
Módulo ou Class Form.
Public Function IniciodoMes(ByVal intData As Integer) As Integer
Dim intMes, intAno As Integer
intMes = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "MM"))
intAno = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "yyyy"))
IniciodoMes = DateDiff(DateInterval.Day, constData, DateSerial(intAno, intMes, 1))
End Function
Public Function FimdoMes(ByVal intData As Integer) As Integer
Dim intDia, intMes, intAno As Integer
intMes = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "MM"))
intAno = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "yyyy"))
Select Case intMes
Case 4, 6, 9, 11
intDia = 30
Case 2
If Bissexto(intAno) = True Then
intDia = 29
Else
intDia = 28
End If
Case Else
intDia = 31
End Select
FimdoMes = DateDiff(DateInterval.Day, constData, DateSerial(intAno, intMes, intDia))
End Function
Public Function Bissexto(ByVal intAno As Integer) As Boolean
Bissexto = False
If intAno Mod 4 = 0 Then
Bissexto = True
Else
Bissexto = False
End If
End Function
Simples, não?
Public Function IniciodoMes(ByVal intData As Integer) As Integer
Dim intMes, intAno As Integer
intMes = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "MM"))
intAno = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "yyyy"))
IniciodoMes = DateDiff(DateInterval.Day, constData, DateSerial(intAno, intMes, 1))
End Function
Public Function FimdoMes(ByVal intData As Integer) As Integer
Dim intDia, intMes, intAno As Integer
intMes = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "MM"))
intAno = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "yyyy"))
Select Case intMes
Case 4, 6, 9, 11
intDia = 30
Case 2
If Bissexto(intAno) = True Then
intDia = 29
Else
intDia = 28
End If
Case Else
intDia = 31
End Select
FimdoMes = DateDiff(DateInterval.Day, constData, DateSerial(intAno, intMes, intDia))
End Function
Public Function Bissexto(ByVal intAno As Integer) As Boolean
Bissexto = False
If intAno Mod 4 = 0 Then
Bissexto = True
Else
Bissexto = False
End If
End Function
Simples, não?
terça-feira, 20 de setembro de 2011
Como formatar datas, tempos e números do jeito que você precisa
Para alterar os formatos de data, tempo e número utilizamos a função “Format”.
A sintaxe da função é: Format(Byval Expressão as Object, Optional Byval Estilo as String = “”) e retorna uma string.
Expressão é a informação que você quer mudar de formato.
Estilo é o tipo de estilo que será a informação e formatos pré-definidos e formatos que você pode definir combinando-os conforme a necessidade. Todos os estilos devem ser colocados entre aspas.
1 – Formatos Pré-definidos
1.1 – Datas e tempos
1.2 - Numérico
2 – Formatos definidos pelo usuário
Combine os códigos abaixo para obter os valores no formato desejado
2.1 - Datas e tempos
Observação: quando escrevemos as datas no código VB, o mês é antes do dia, segue o padrão inglês.
2.2 - Números
Agora é só montar a sua formatação.
Simples, não?
A sintaxe da função é: Format(Byval Expressão as Object, Optional Byval Estilo as String = “”) e retorna uma string.
Expressão é a informação que você quer mudar de formato.
Estilo é o tipo de estilo que será a informação e formatos pré-definidos e formatos que você pode definir combinando-os conforme a necessidade. Todos os estilos devem ser colocados entre aspas.
1 – Formatos Pré-definidos
1.1 – Datas e tempos
General Date ou G | Format(#1/1/2011 11:11:11 AM#, “G”) = “1/1/2011 11:11:11” Format(#1/1/2011 11:11:11 PM#, “G”) = “1/1/2011 23:11:11” |
Long Date, Medium Date, ou D | Format(#1/1/2011 11:11:11 AM#, “Long Date”) = “sábado, 1 de janeiro de 2011” |
Short Date ou d | Format(#1/1/2011 11:11:11 AM#, “Short Date”) = “01/01/2011” |
Long Time, Medium Time ou T | Format(#1/1/2011 11:11:11 AM#, “T”) = “11:11:11” Format(#1/1/2011 11:11:11 PM#, “T”) = “23:11:11” |
Short Time ou t | Format(#1/1/2011 11:11:11 AM#, “t”) = “11:11” Format(#1/1/2011 11:11:11 PM#, “t”) = “23:11” |
F | Format(#1/1/2011 11:11:11 AM#, “F”) = “sábado, 1 de janeiro de 2011 11:11:11” Format(#1/1/2011 11:11:11 PM#, “F”) = “sábado, 1 de janeiro de 2011 23:11:11” |
f | Format(#1/1/2011 11:11:11 AM#, “f”) = “sábado, 1 de janeiro de 2011 11:11” Format(#1/1/2011 11:11:11 PM#, “f”) = “sábado, 1 de janeiro de 2011 23:11” |
g | Format(#1/1/2011 11:11:11 AM#, “g”) = “01/01/2011 11:11” Format(#1/1/2011 11:11:11 PM#, “g”) = “01/01/2011 23:11” |
M, m | Format(#1/1/2011 11:11:11 AM#, “M”) = “01 de janeiro” |
R, r | Format(#1/1/2011 11:11:11 AM#, “R”) = “Sat, 01 Jan 2011 11:11:11 GMT” Format(#1/1/2011 11:11:11 PM#, “r”) = “Sat, 01 Jan 2011 23:11:11 GMT” |
s | Format(#1/1/2011 11:11:11 AM#, “s”) = “2011-01-01T11:11:11” Format(#1/1/2011 11:11:11 PM#, “s”) = “2011-01-01T23:11:11” |
u | Format(#1/1/2011 11:11:11 AM#, “u”) = “2011-01-01 11:11:11Z” Format(#1/1/2011 11:11:11 PM#, “u”) = “2011-01-01 23:11:11Z” |
U | Format(#1/1/2011 11:11:11 AM#, “U”) = “sábado, 1 de janeiro de 2011 13:11:11” Format(#1/1/2011 11:11:11 PM#, “U”) = “domingo, 2 de janeiro de 2011 01:11:11” |
Y, y | Format(#1/1/2011 11:11:11 AM#, “Y”) = “janeiro de 2011” |
1.2 - Numérico
General Number, G ou g | Converte o número em um modo compacto e com quantos algarismos significativos. Format(12345.6789, “G”) = “12345,6789” Format(12345.6789, “G4”) = “1,235E+04” Format(12345.6789, “G7”) = “12345,7” |
Currency, C ou c | Converte o número em unidade monetária e com quantos algarismos após a vírgula arredondando o valor. Format(12345.6789, “C”) = “R$ 12.345,68” Format(12345.6789, “C0”) = “R$ 12.346” Format(12345.6789, “C6”) = “R$ 12.345,678900” |
Fixed, F ou f | Especifica o número de casas decimais arredondando o valor. Format(12345.6789, “F”) = “12345,68” Format(12345.6789, “F0”) = “12346” Format(12345.6789, “F5”) = “12345,67890” |
Standard, N ou n | Converte o número para o modo com separadores de milhares e decimais especificando o número de casas decimais arredondando o valor. Format(12345.6789, “N”) = “12.345,68” Format(12345.6789, “N0”) = “12.346” Format(12345.6789, “N5”) = “12.345,67890” |
Percent | Multiplica o número por 100 e com o símbolo % Format(12345.6789, “Percent”) = “1234567,89% |
P ou p | Multiplica o número por 100 e com o símbolo % e com quantos algarismos após a vírgula arredondando o valor. Format(12345.6789, “P”) = “1.234.567,89%” Format(12345.6789, “P0”) = “1.234.568% Format(12345.6789, “P”) = “1.234.567,89000%” |
Scientific | Converte o número em notação científica com 3 algarismos significativos. Format(12345.6789, “Scientific”) = “1,23E+04” |
E ou e | Converte o número em notação científica e com quantos algarismos após a vírgula arredondando o valor. Format(12345.6789, “E”) = “1,234568E+004” Format(12345.6789, “E0”) = “1E+004” Format(12345.6789, “E5”) = “1,23457E+004” Format(12345.6789, “e”) = “1,234568e+004” Format(12345.6789, “e0”) = “1e+004” Format(12345.6789, “e5”) = “1,23457e+004” |
D ou d | Converte o número para a base Decimal e com quantos algarismos o número será retornado. Válido apenas para números inteiros. Format(123456789, “D11”) = “00123456789” |
X ou x | Converte o número para a base Hexadecimal Format(123456789, “X”) = “75BCD15” Format(123456789, “x”) = “75bcd15” |
Yes/No | Format(0, “Yes/No”) = “Não” Format(2, “Yes/No”) = “Sim” |
True/False | Format(0, “True/False”) = “False” Format(2, “True/False”) = “True” |
On/Off | Format(0, “On/Off”) = “Desativar” Format(2, “On/Off”) = “Ativar” |
2 – Formatos definidos pelo usuário
Combine os códigos abaixo para obter os valores no formato desejado
2.1 - Datas e tempos
Observação: quando escrevemos as datas no código VB, o mês é antes do dia, segue o padrão inglês.
: | Separador de tempo utilizado para separar horas, minutos e segundos. |
/ | de data utilizado para separar dia, mês e ano. |
d | Mostra o dia como número sem o primeiro zero Format(#1/2/2003 12:34:56 AM#, "d/M") = "2/1". |
dd | Mostra o dia como número com o primeiro zero Format(#1/2/2003 12:34:56 AM#, "dd") = "02". |
ddd | Mostra a abreviatura do dia. Format(#1/2/2003 12:34:56 AM#, "ddd") = "qui" |
dddd | Mostra o nome inteiro do dia. Format(#1/2/2003 12:34:56 AM#, "dddd") = "quinta-feira" |
M | Mostra o mês como um número sem o primeiro zero. Format(#1/2/2003 12:34:56 AM#, "d/M") = "1" |
MM | Mostra o mês como um número com o primeiro zero. Format(#1/2/2003 12:34:56 AM#, "MM") = "01" |
MMM | Mostra a abreviatura do mês. Format(#1/2/2003 12:34:56 AM#, "MMM") = "jan" |
MMMM | Mostra o nome do mês Format(#1/2/2003 12:34:56 AM#, "MMMM") = "janeiro" |
y | Mostra o ano como um número sem o zeros se for entre 0 e 9. Format(#1/2/2003 12:34:56 AM#, "M/y") = "1/3" |
yy | Mostra o ano como um número de dois dígitos com o zero quando aplicável. Format(#1/2/2003 12:34:56 AM#, "yy") = "03" |
yyy | Mostra o ano como um número de quatro dígitos. Format(#1/2/2003 12:34:56 AM#, "yyy") = "2003" |
yyyy | Mostra o ano como um número de quatro dígitos. Format(#1/2/2003 12:34:56 AM#, "yyyy") = "2003" |
gg | Mostra a era da data. Format(#1/2/2003 12:34:56 AM#, "gg") = "d.C." |
h | Mostra a hora como um número sem o primeiro zero utilizando o formato de 12 horas. Format(#1/2/2003 12:34:56 AM#, "h:m") = "12:34" Format(#1/2/2003 12:34:56 PM#, "h:m") = "12:34" |
hh | Mostra a hora como um número sem o primeiro zero utilizando o formato de 12 horas. Format(#1/2/2003 12:34:56 AM#, "hh") = "12" Format(#1/2/2003 12:34:56 PM#, "hh") = "12" |
H | Mostra a hora como um número sem o primeiro zero utilizando o formato de 24 horas. Format(#1/2/2003 12:34:56 AM#, "H:m") = "0:34" Format(#1/2/2003 12:34:56 PM#, "H:m") = "12:34" |
HH | Mostra a hora como um número com o primeiro zero utilizando o formato de 24 horas. Format(#1/2/2003 12:34:56 AM#, "HH") = "00" Format(#1/2/2003 12:34:56 PM#, "HH") = "12" |
m | Mostra o minuto como um número sem o primeiro zero. Format(#1/2/2003 12:04:56 AM#, "h:m") = "12:4" |
mm | Mostra o minuto como um número sem o primeiro zero. Format(#1/2/2003 12:04:56 AM#, "mm") = "04" |
s | Mostra o segundo como um número sem o primeiro zero. Format(#1/2/2003 12:34:06 AM#, "m:s") = "6" |
ss | Mostra o segundo como um número sem o primeiro zero. Format(#1/2/2003 12:34:06 AM#, "ss") = "06" |
f | Mostra a fração de segundos. Format(Now, "ff") = 89 'Centésimos de segundos Format(Now, "fffffff") = 6599721 'Décimos de milionésimos de segundo (Máximo) |
t | Mostra a hora e os minutos em formato 24 horas Format(#1/2/2003 12:34:56 AM#, "t") = "0:34" Format(#1/2/2003 12:34:56 PM#, "t") = "12:34" |
zz | Mostra o fuso horário em formato simples. Format(Now, "zz") = "-03" 'Fuso de Brasília |
zzz | Mostra o fuso horário em formato longo. Format(Now, "zzz") = "-03:00" 'Fuso de Brasília |
2.2 - Números
. | Separador de decimais. |
, | Separador de milhar. |
0 | Se a expressão tiver um dígito na posição onde o 0 aparece na seqüência de formato, exibi-lo, caso contrário, exibe um zero nessa posição. Format(2, “00”) = “02” Format(2, “0.00”) = “2,00” Format(2, “0,000”) = “0.002” |
# | Se a expressão tiver um dígito na posição onde o # aparece na seqüência de formato, exibi-lo, caso contrário,não exibe nada. Format(2, “##”) = “2” Format(2, “#.#”) = “2” Format(2, “#,###”) = “2” |
% | Caractere de porcentagem. Multiplica a expressão por 100 e adiciona o caractere %. Format(2, “0%”) = “200%” Format(2, “0.0%”) = “200,0%” Format(2, “0,000%”) = “0.200%” |
E+, E-, e+, e- | Formato científico. Deve-se usar 0 ou # à direita para exibir os expoentes. Format(2, “#E+0”) = “2E+0” Format(0.002, “00E+00”) = “20E-04” Format(0.002, “00E-00”) = “20E-04” |
- + $ ( ) | Caracteres literais. São exibidos na sequência que estão na formatação. Format(2, “R$ 00”) = R$ 02 Format(2, “R$ 0.00”) = “R$ 2,00” |
; | Divide a formatação entre formato para números positivos e formato para números negativos. Format(2, “0;0-”) = 2 Format(-2, “0;0-”) = “2-” Format(-2, “0;(0)” ) = “(2)” |
\ | Exibe o próximo caractere na sequência do formato ocultando a própria \. Em alguns casos onde se deseja utilizar caracteres que já são específicos para a formatação de datas e tempos pode gerar erro, então utiliza-se a \. Exemplos de caracteres que não podem ser utilizados como literais: caracteres para formatação de data e tempo (a, c, d, h, m, n, p, q, s, t, w, y, /, e :), caracteres para formatação de números (#, 0, %, E, e, vírgula e ponto) e caracteres para formatação de strings (@, &, <, > e !). Format(2, “d0”) = Erro Format(2, “\d0”) = “d2” Format(2, “t00” ) = Erro Format(2, “\t00”) = "t02” |
Agora é só montar a sua formatação.
Simples, não?
Marcadores:
Data,
Formatação,
Número,
Vb.Net
segunda-feira, 19 de setembro de 2011
Colocando uma máscara de data no TextBox
Para colocar uma máscara de data no TextBox para que a barra(\) apareça
automaticamente coloque os códigos abaixo no evento TextBox1_KeyPress:
'Cancelar as teclas de letras, acentos e outros caracteres não numéricos
If No tChar.IsNumber(e.KeyChar) And e.KeyChar <> Chr(8) And e.KeyChar <> Chr(13) Then
e.Handled = True
End If
'Máscara de data com a barra
If IsNumeric(e.KeyChar) = True Then
Select Case TextBox1.TextLength
Case 0
TextBox1.Text = ""
Case 2
TextBox1.Text = TextBox1.Text + "/"
TextBox1.SelectionStart = 4
Case 5
TextBox1.Text = TextBox1.Text + "/"
TextBox1.SelectionStart = 7
End Select
End If
'Limita o textbox a 10 caracteres
If TextBox1.TextLength = 10 Then
If Not e.KeyChar = Chr(8) Then
e.Handled = True
TextBox1.SelectionStart = TextBox1.TextLength
End If
End If
'Retirar a / das posições e o número anterior
If TextBox1.TextLength <> 0 Then
If e.KeyChar = Chr(8) And TextBox1.TextLength = TextBox1.Text.LastIndexOf("/") + 1 Then
TextBox1.Text = TextBox1.Text.Substring(0, TextBox1.TextLength - 1)
TextBox1.SelectionStart = TextBox1.TextLength
End If
End If
'Testa a data quando a tecla enter é precionada
If e.KeyChar = Chr(13) Then
If IsDate(TextBox1.Text) = False Or TextBox1.TextLength = 9 Then
MsgBox("Data Inválida!", 16, "Erro")
Exit Sub
Else
TextBox1.Text = Format(CDate(TextBox1.Text), "dd/MM/yy")
End If
End If
Você pode colocar a última parte, quando se verifica se a data é válida no evento TextBox1_Leave, basta retirar o “If e.KeyChar = Chr(13) Then”.
Simples, não?
'Cancelar as teclas de letras, acentos e outros caracteres não numéricos
If No tChar.IsNumber(e.KeyChar) And e.KeyChar <> Chr(8) And e.KeyChar <> Chr(13) Then
e.Handled = True
End If
'Máscara de data com a barra
If IsNumeric(e.KeyChar) = True Then
Select Case TextBox1.TextLength
Case 0
TextBox1.Text = ""
Case 2
TextBox1.Text = TextBox1.Text + "/"
TextBox1.SelectionStart = 4
Case 5
TextBox1.Text = TextBox1.Text + "/"
TextBox1.SelectionStart = 7
End Select
End If
'Limita o textbox a 10 caracteres
If TextBox1.TextLength = 10 Then
If Not e.KeyChar = Chr(8) Then
e.Handled = True
TextBox1.SelectionStart = TextBox1.TextLength
End If
End If
'Retirar a / das posições e o número anterior
If TextBox1.TextLength <> 0 Then
If e.KeyChar = Chr(8) And TextBox1.TextLength = TextBox1.Text.LastIndexOf("/") + 1 Then
TextBox1.Text = TextBox1.Text.Substring(0, TextBox1.TextLength - 1)
TextBox1.SelectionStart = TextBox1.TextLength
End If
End If
'Testa a data quando a tecla enter é precionada
If e.KeyChar = Chr(13) Then
If IsDate(TextBox1.Text) = False Or TextBox1.TextLength = 9 Then
MsgBox("Data Inválida!", 16, "Erro")
Exit Sub
Else
TextBox1.Text = Format(CDate(TextBox1.Text), "dd/MM/yy")
End If
End If
Você pode colocar a última parte, quando se verifica se a data é válida no evento TextBox1_Leave, basta retirar o “If e.KeyChar = Chr(13) Then”.
Simples, não?
domingo, 18 de setembro de 2011
Como aplicar uma ação a todos os componentes de um tipo em um Form
Para aplicar uma ação a todos os componentes de um tipo em um Form utilize os
códigos abaixo.
For Each ctl As Control In Me.Controls
If TypeOf ctl Is Tipo de Componente Then
Ação()
End If
Next ctl
Exemplos:
Para limpar o texto em todos os TextBox:
For Each ctl As Control In Me.Controls
If TypeOf ctl Is TextBox Then
ctl.Text = ""
End If
Next ctl
Para ocultar todos os Buttons:
For Each ctl As Control In Me.Controls
If TypeOf ctl Is Button Then
ctl.Visible = False
End If
Next ctl
Simples, não?
For Each ctl As Control In Me.Controls
If TypeOf ctl Is Tipo de Componente Then
Ação()
End If
Next ctl
Exemplos:
Para limpar o texto em todos os TextBox:
For Each ctl As Control In Me.Controls
If TypeOf ctl Is TextBox Then
ctl.Text = ""
End If
Next ctl
Para ocultar todos os Buttons:
For Each ctl As Control In Me.Controls
If TypeOf ctl Is Button Then
ctl.Visible = False
End If
Next ctl
Simples, não?
sábado, 17 de setembro de 2011
Colocar em ordem alfabética os itens de uma ListView
Para colocar em ordem alfabética itens de uma ListView quando o usuário clica
em uma coluna, utilize os códigos abaixo.
Crie uma classe e coloque os seguintes códigos:
Imports System.Collections
Imports System.Windows.Forms 'Estas duas instruções devem ser colocadas antes de Public Class
Public Class NomedaClasse
Implements IComparer
Public Enum SortOrder
Ascending
Descending
End Enum
Private mSortColumn As Integer
Private mSortOrder As SortOrder
Public Sub New(ByVal sortColumn As Integer, ByVal sortOrder As SortOrder)
mSortColumn = sortColumn
mSortOrder = sortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Result As Integer
Dim ItemX As ListViewItem
Dim ItemY As ListViewItem
ItemX = CType(x, ListViewItem)
ItemY = CType(y, ListViewItem)
If mSortColumn = 0 Then
Result = DateTime.Compare(CType(ItemX.Text, DateTime), CType(ItemY.Text, DateTime))
Else
Result = DateTime.Compare(CType(ItemX.SubItems(mSortColumn).Text, DateTime), CType(ItemY.SubItems(mSortColumn).Text, DateTime))
End If
If mSortOrder = SortOrder.Descending Then
Result = -Result
End If
Return Result
End Function
End Class
Public Class ListViewStringSort
Implements IComparer
Private mSortColumn As Integer
Private mSortOrder As SortOrder
Public Sub New(ByVal sortColumn As Integer, ByVal sortOrder As SortOrder)
mSortColumn = sortColumn
mSortOrder = sortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Result As Integer
Dim ItemX As ListViewItem
Dim ItemY As ListViewItem
ItemX = CType(x, ListViewItem)
ItemY = CType(y, ListViewItem)
If mSortColumn = 0 Then
Result = ItemX.Text.CompareTo(ItemY.Text)
Else
Result = ItemX.SubItems(mSortColumn).Text.CompareTo(ItemY.SubItems(mSortColumn).Text)
End If
If mSortOrder = SortOrder.Descending Then
Result = -Result
End If
Return Result
End Function
End Class
Public Class ListViewNumericSort
Implements IComparer
Private mSortColumn As Integer
Private mSortOrder As SortOrder
Public Sub New(ByVal sortColumn As Integer, ByVal sortOrder As SortOrder)
mSortColumn = sortColumn
mSortOrder = sortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Result As Integer
Dim ItemX As ListViewItem
Dim ItemY As ListViewItem
ItemX = CType(x, ListViewItem)
ItemY = CType(y, ListViewItem)
If mSortColumn = 0 Then
Result = Decimal.Compare(CType(ItemX.Text, Decimal), CType(ItemY.Text, Decimal))
Else
Result = Decimal.Compare(CType(ItemX.SubItems(mSortColumn).Text, Decimal), CType(ItemY.SubItems(mSortColumn).Text, Decimal))
End If
If mSortOrder = SortOrder.Descending Then
Result = -Result
End If
Return Result
End Function
End Class
Public Class ListViewDateSort
Implements IComparer
Private mSortColumn As Integer
Private mSortOrder As SortOrder
Public Sub New(ByVal sortColumn As Integer, ByVal sortOrder As SortOrder)
mSortColumn = sortColumn
mSortOrder = sortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Result As Integer
Dim ItemX As ListViewItem
Dim ItemY As ListViewItem
ItemX = CType(x, ListViewItem)
ItemY = CType(y, ListViewItem)
If mSortColumn = 0 Then
Result = DateTime.Compare(CType(ItemX.Text, DateTime), CType(ItemY.Text, DateTime))
Else
Result = DateTime.Compare(CType(ItemX.SubItems(mSortColumn).Text, DateTime), CType(ItemY.SubItems(mSortColumn).Text, DateTime))
End If
If mSortOrder = SortOrder.Descending Then
Result = -Result
End If
Return Result
End Function
End Class
Em um módulo coloque os códigos abaixo:
Friend Sub SortMyListView(ByVal ListViewToSort As ListView, ByVal ColumnNumber As Integer, Optional ByVal Resort As Boolean = False, Optional ByVal ForceSort As Boolean = False)
Dim SortOrder As SortOrder
Static LastSortColumn As Integer = -1
Static LastSortOrder As SortOrder = SortOrder.Ascending
If Resort = True Then
SortOrder = LastSortOrder
Else If LastSortColumn = ColumnNumber Then If LastSortOrder = SortOrder.Ascending Then
SortOrder = SortOrder.Descending
Else
SortOrder = SortOrder.Ascending
End If
Else
SortOrder = SortOrder.Ascending
End If End If
If String.IsNullOrEmpty(CStr(ListViewToSort.Columns(ColumnNumber).Tag)) Then If ForceSort = True Then
ListViewToSort.Columns(ColumnNumber).Tag = "String"
Else Exit Sub End If End If
Select Case ListViewToSort.Columns(ColumnNumber).Tag.ToString
Case "Numeric"
ListViewToSort.ListViewItemSorter = New ListViewNumericSort(ColumnNumber, SortOrder)
Case "Date"
ListViewToSort.ListViewItemSorter = New ListViewDateSort(ColumnNumber, SortOrder)
Case "String"
ListViewToSort.ListViewItemSorter = New ListViewStringSort(ColumnNumber, SortOrder)
End Select
LastSortColumn = ColumnNumber
LastSortOrder = SortOrder
ListViewToSort.ListViewItemSorter = Nothing
End Sub
No evento ColumnClick do ListView coloque o código abaixo:
Private Sub ListView1_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView.ColumnClick
SortMyListView(Me.ListView1, e.Column, , True)
End Sub
Achei estes códigos há algum tempo, não me lembro de onde para colocar os créditos aqui.
Simples, não?
Crie uma classe e coloque os seguintes códigos:
Imports System.Collections
Imports System.Windows.Forms 'Estas duas instruções devem ser colocadas antes de Public Class
Public Class NomedaClasse
Implements IComparer
Public Enum SortOrder
Ascending
Descending
End Enum
Private mSortColumn As Integer
Private mSortOrder As SortOrder
Public Sub New(ByVal sortColumn As Integer, ByVal sortOrder As SortOrder)
mSortColumn = sortColumn
mSortOrder = sortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Result As Integer
Dim ItemX As ListViewItem
Dim ItemY As ListViewItem
ItemX = CType(x, ListViewItem)
ItemY = CType(y, ListViewItem)
If mSortColumn = 0 Then
Result = DateTime.Compare(CType(ItemX.Text, DateTime), CType(ItemY.Text, DateTime))
Else
Result = DateTime.Compare(CType(ItemX.SubItems(mSortColumn).Text, DateTime), CType(ItemY.SubItems(mSortColumn).Text, DateTime))
End If
If mSortOrder = SortOrder.Descending Then
Result = -Result
End If
Return Result
End Function
End Class
Public Class ListViewStringSort
Implements IComparer
Private mSortColumn As Integer
Private mSortOrder As SortOrder
Public Sub New(ByVal sortColumn As Integer, ByVal sortOrder As SortOrder)
mSortColumn = sortColumn
mSortOrder = sortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Result As Integer
Dim ItemX As ListViewItem
Dim ItemY As ListViewItem
ItemX = CType(x, ListViewItem)
ItemY = CType(y, ListViewItem)
If mSortColumn = 0 Then
Result = ItemX.Text.CompareTo(ItemY.Text)
Else
Result = ItemX.SubItems(mSortColumn).Text.CompareTo(ItemY.SubItems(mSortColumn).Text)
End If
If mSortOrder = SortOrder.Descending Then
Result = -Result
End If
Return Result
End Function
End Class
Public Class ListViewNumericSort
Implements IComparer
Private mSortColumn As Integer
Private mSortOrder As SortOrder
Public Sub New(ByVal sortColumn As Integer, ByVal sortOrder As SortOrder)
mSortColumn = sortColumn
mSortOrder = sortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Result As Integer
Dim ItemX As ListViewItem
Dim ItemY As ListViewItem
ItemX = CType(x, ListViewItem)
ItemY = CType(y, ListViewItem)
If mSortColumn = 0 Then
Result = Decimal.Compare(CType(ItemX.Text, Decimal), CType(ItemY.Text, Decimal))
Else
Result = Decimal.Compare(CType(ItemX.SubItems(mSortColumn).Text, Decimal), CType(ItemY.SubItems(mSortColumn).Text, Decimal))
End If
If mSortOrder = SortOrder.Descending Then
Result = -Result
End If
Return Result
End Function
End Class
Public Class ListViewDateSort
Implements IComparer
Private mSortColumn As Integer
Private mSortOrder As SortOrder
Public Sub New(ByVal sortColumn As Integer, ByVal sortOrder As SortOrder)
mSortColumn = sortColumn
mSortOrder = sortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Result As Integer
Dim ItemX As ListViewItem
Dim ItemY As ListViewItem
ItemX = CType(x, ListViewItem)
ItemY = CType(y, ListViewItem)
If mSortColumn = 0 Then
Result = DateTime.Compare(CType(ItemX.Text, DateTime), CType(ItemY.Text, DateTime))
Else
Result = DateTime.Compare(CType(ItemX.SubItems(mSortColumn).Text, DateTime), CType(ItemY.SubItems(mSortColumn).Text, DateTime))
End If
If mSortOrder = SortOrder.Descending Then
Result = -Result
End If
Return Result
End Function
End Class
Em um módulo coloque os códigos abaixo:
Friend Sub SortMyListView(ByVal ListViewToSort As ListView, ByVal ColumnNumber As Integer, Optional ByVal Resort As Boolean = False, Optional ByVal ForceSort As Boolean = False)
Dim SortOrder As SortOrder
Static LastSortColumn As Integer = -1
Static LastSortOrder As SortOrder = SortOrder.Ascending
If Resort = True Then
SortOrder = LastSortOrder
Else If LastSortColumn = ColumnNumber Then If LastSortOrder = SortOrder.Ascending Then
SortOrder = SortOrder.Descending
Else
SortOrder = SortOrder.Ascending
End If
Else
SortOrder = SortOrder.Ascending
End If End If
If String.IsNullOrEmpty(CStr(ListViewToSort.Columns(ColumnNumber).Tag)) Then If ForceSort = True Then
ListViewToSort.Columns(ColumnNumber).Tag = "String"
Else Exit Sub End If End If
Select Case ListViewToSort.Columns(ColumnNumber).Tag.ToString
Case "Numeric"
ListViewToSort.ListViewItemSorter = New ListViewNumericSort(ColumnNumber, SortOrder)
Case "Date"
ListViewToSort.ListViewItemSorter = New ListViewDateSort(ColumnNumber, SortOrder)
Case "String"
ListViewToSort.ListViewItemSorter = New ListViewStringSort(ColumnNumber, SortOrder)
End Select
LastSortColumn = ColumnNumber
LastSortOrder = SortOrder
ListViewToSort.ListViewItemSorter = Nothing
End Sub
No evento ColumnClick do ListView coloque o código abaixo:
Private Sub ListView1_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView.ColumnClick
SortMyListView(Me.ListView1, e.Column, , True)
End Sub
Achei estes códigos há algum tempo, não me lembro de onde para colocar os créditos aqui.
Simples, não?
Marcadores:
Alfabética,
ListView,
Ordem,
Ordenar,
Vb.Net
sexta-feira, 16 de setembro de 2011
Acessando pastas padrões do Windows
O VB possui comandos simples para você acessar arquivos em pastas padrões para os usuários do Windows.
1 - Pasta de arquivos temporários
My.Computer.FileSystem.SpecialDirectories.Temp
2 - Pasta meus documentos
My.Computer.FileSystem.SpecialDirectories.MyDocuments
3 - Pasta minhas imagens
My.Computer.FileSystem.SpecialDirectories.MyPictures
4 - Pastas minhas músicas
My.Computer.FileSystem.SpecialDirectories.MyMusic
5 - Pasta desktop
My.Computer.FileSystem.SpecialDirectories.Desktop
6 - Pasta do menu iniciar
My.Computer.FileSystem.SpecialDirectories.Programs
7 - Pasta de instalação dos programas
My.Computer.FileSystem.SpecialDirectories.ProgramFiles
Você pode utilizar estes códigos, por exemplo, no OpenFileDialog.InitialDirectory
Simples, não?
1 - Pasta de arquivos temporários
My.Computer.FileSystem.SpecialDirectories.Temp
2 - Pasta meus documentos
My.Computer.FileSystem.SpecialDirectories.MyDocuments
3 - Pasta minhas imagens
My.Computer.FileSystem.SpecialDirectories.MyPictures
4 - Pastas minhas músicas
My.Computer.FileSystem.SpecialDirectories.MyMusic
5 - Pasta desktop
My.Computer.FileSystem.SpecialDirectories.Desktop
6 - Pasta do menu iniciar
My.Computer.FileSystem.SpecialDirectories.Programs
7 - Pasta de instalação dos programas
My.Computer.FileSystem.SpecialDirectories.ProgramFiles
Você pode utilizar estes códigos, por exemplo, no OpenFileDialog.InitialDirectory
Simples, não?
Marcadores:
Arquivos,
OpenFileDialog,
Pastas,
Vb.Net
quinta-feira, 15 de setembro de 2011
Como obter informações de arquivos
Para obter informações de arquivos como tamanho, data de criação, caminho e outras, temos os códigos abaixo:
Dim DadosArquivo As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo("Caminho completo e Nome do Arquivo")
Label1.Text = DadosArquivo.DirectoryName 'o diretório do arquivo
Label2.Text = DadosArquivo.Extension 'a extensão do arquivo
Label3.Text = DadosArquivo.FullName 'o caminho e o nome do arquivo
Label4.Text = DadosArquivo.LastAccessTime 'a data e hora do último acesso ao arquivo
Label5.Text = DadosArquivo.LastWriteTime 'a data e hora do última modificação do arquivo
Label6.Text = DadosArquivo.Length 'o tamanho, em bytes, do arquivo
Label7.Text = DadosArquivo.Name 'o nome do arquivo
Label8.Text = DadosArquivo.Exists 'se o arquivo existe
Simples, não?
Dim DadosArquivo As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo("Caminho completo e Nome do Arquivo")
Label1.Text = DadosArquivo.DirectoryName 'o diretório do arquivo
Label2.Text = DadosArquivo.Extension 'a extensão do arquivo
Label3.Text = DadosArquivo.FullName 'o caminho e o nome do arquivo
Label4.Text = DadosArquivo.LastAccessTime 'a data e hora do último acesso ao arquivo
Label5.Text = DadosArquivo.LastWriteTime 'a data e hora do última modificação do arquivo
Label6.Text = DadosArquivo.Length 'o tamanho, em bytes, do arquivo
Label7.Text = DadosArquivo.Name 'o nome do arquivo
Label8.Text = DadosArquivo.Exists 'se o arquivo existe
Simples, não?
Marcadores:
Arquivos,
Informações,
Vb.Net
quarta-feira, 14 de setembro de 2011
Como utilizar o OpenFileDialog para abrir determinados tipos de arquivos
Para utilizar o OpenFileDialog para abrir determinados tipos de arquivos utilize os comandos abaixo:
OpenFileDialog1.InitialDirectory() = "Diretório Inicial"
Este comando determina qual diretório será o diretório inicial quando o OpenFileDialog abrir. Você pode colocar os comandos para os diretórios padrões do Windows, exemplos:
OpenFileDialog1.InitialDirectory() = "C:\Windows"
OpenFileDialog1.InitialDirectory() = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog1.FileName = "Tipo de Arquivo"
Este comando aplica um texto no campo Nome do Arquivo no OpenFileDialog quando este for aberto.
OpenFileDialog1.Filter = "Descrição da Extensão 1(*.Extensão1)|*.Extenção1|Descrição da Extensão2 (*.Extensão2)|*.Extensão2"
Este comando aplica um filtro no OpenFileDialog para abrir somente os arquivos determinados por você. Exemplos:
OpenFileDialog1.InitialDirectory() = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog1.FileName = "Documentos do Word"
OpenFileDialog1.Filter = "Documentos do Word (*.docx)|*.docx|Documentos do Word 93-2003 (*.doc)|*.doc"
Neste exemplo cada tipo de arquivo é associado a apenas uma extensão.
OpenFileDialog1.InitialDirectory() = My.Computer.FileSystem.SpecialDirectories.MyMusic
OpenFileDialog1.Filter = "Som wave (*.wav,*.wave)|*.wav;*.wave"
OpenFileDialog1.FileName = "Som wave"
Neste exemplo um tipo de arquivo está associado com duas extensões.
OpenFileDialog1.ShowDialog()
Este comando mostra o OpenFileDialog
Simples, não?
OpenFileDialog1.InitialDirectory() = "Diretório Inicial"
Este comando determina qual diretório será o diretório inicial quando o OpenFileDialog abrir. Você pode colocar os comandos para os diretórios padrões do Windows, exemplos:
OpenFileDialog1.InitialDirectory() = "C:\Windows"
OpenFileDialog1.InitialDirectory() = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog1.FileName = "Tipo de Arquivo"
Este comando aplica um texto no campo Nome do Arquivo no OpenFileDialog quando este for aberto.
OpenFileDialog1.Filter = "Descrição da Extensão 1(*.Extensão1)|*.Extenção1|Descrição da Extensão2 (*.Extensão2)|*.Extensão2"
Este comando aplica um filtro no OpenFileDialog para abrir somente os arquivos determinados por você. Exemplos:
OpenFileDialog1.InitialDirectory() = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog1.FileName = "Documentos do Word"
OpenFileDialog1.Filter = "Documentos do Word (*.docx)|*.docx|Documentos do Word 93-2003 (*.doc)|*.doc"
Neste exemplo cada tipo de arquivo é associado a apenas uma extensão.
OpenFileDialog1.InitialDirectory() = My.Computer.FileSystem.SpecialDirectories.MyMusic
OpenFileDialog1.Filter = "Som wave (*.wav,*.wave)|*.wav;*.wave"
OpenFileDialog1.FileName = "Som wave"
Neste exemplo um tipo de arquivo está associado com duas extensões.
OpenFileDialog1.ShowDialog()
Este comando mostra o OpenFileDialog
Simples, não?
Marcadores:
Arquivos,
OpenFileDialog,
Vb.Net
terça-feira, 13 de setembro de 2011
Como agregar arquivos no seu aplicativo para utilizá-los a qualquer hora
O VB possui uma parte que você pode agregar qualquer arquivo não
executável para utilizá-lo a qualquer hora e de maneira muito prática. Esta
parte chama-se Resources. Ela está disponível como uma aba nas Propriedades do seu projeto. Você
pode acessá-la dando dois cliques em My Project em Solution Explorer ou em
propriedades do seu projeto no menu Project.
Você pode adicionar ao seu projeto frases (Strings), arquivos de áudio, figuras, ícones e outros arquivos.
Para utilizar estes arquivos basta o seguinte comando:
My.Resources.Nome do Arquivo
Exemplos:
My.Computer.Sound.Play(My.Resources.Audio, AudioPlayMode.Background)
Label1.Image = My.Resources.Imagem
Simples, não?
Você pode adicionar ao seu projeto frases (Strings), arquivos de áudio, figuras, ícones e outros arquivos.
Para utilizar estes arquivos basta o seguinte comando:
My.Resources.Nome do Arquivo
Exemplos:
My.Computer.Sound.Play(My.Resources.Audio, AudioPlayMode.Background)
Label1.Image = My.Resources.Imagem
Simples, não?
segunda-feira, 12 de setembro de 2011
Salvando informações no registro
Para salvar informações no registro do Windows existem dois métodos, um mais fácil e outro menos fácil.
1 - Mais fácil
Os comandos a baixos alteram as informações em uma seção padrão do registro para aplicativos VB: HKEY_CURRENT_USER\Software\VB and VBA Program Settings. Os comandos são simples e rápidos.
1.1 - Salvar informações
SaveSetting("Nome do Aplicativo", "Seção", "Chave", "Valor"), onde Nome do Aplicativo, Seção, Chave e Valor são Strings.
1.2 - Obter informações
GetSetting("Nome do Aplicativo", "Seção", "Chave", "Valor Padrão"), onde Valor Padrão é o valor que retornará caso o registro não exista.
1.3 - Apagar informações
DeleteSetting("Nome do Aplicativo", "Seção", "Chave"), onde Seção e Chave são opcionais.
2 - Menos fácil
Este método você pode salvar informações em qualquer parte do registro. Para efeito de organização do registro você deve salvar as informações na seção Software em CurrentUser, o que torna o aplicativo mais profissional.
Você dece colocar antes do Public Class Form:
Imports Microsoft.Win32
Para tal, o VB possui os seguintes comandos:
2.1 - Criar Pastas
Você pode criar novas seções sem criar novas chaves, basta utilizar os seguintes comandos:
Dim NovaChave As RegistryKey
NovaChave = My.Computer.Registry.CurrentUser.CreateSubKey("Software\Nome da Empresa\Nome do Aplicativo\Seção")
2.2 - Salvar informações
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Nome da Empresa\Nome do Aplicativo\Seção", "Chave", "Valor"
Se a seção não existir, ela será criada.
2.3 - Obter informações
Dim ValordaChave As Object
ValordaChave = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Nome da Empresa\Nome do Aplicativo\Seção", "Chave", "Valor Padrão"), onde Valor Padrão é o valor que irá retornar caso a chave não exista.
2.4 - Deletar informações
Existem três métodos:
2.4.1 - Apagar uma Chave
Using Chave As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Nome da Empresa\Nome do Aplicativo\Seção", True)
Chave.DeleteValue("Chave")
End Using
2.4.2 - Apagar uma Seção
Using Secao As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Nome da Empresa\Nome do Aplicativo", True)
Secao.DeleteSubKey("Seção")
End Using
2.4.3 - Apagar uma árvore de seções
Using Secao As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software", True)
Secao.DeleteSubKeyTree("Nome da Empresa")
End Using
Utilize com atenção estes comandos, pois você pode danificar a execução de programas e até do Windows.
Lembrete: você pode acessar o registro e fazer alterações manualmente nele colando REGEDIT em Executar (atalho do teclado: Ctrl+R).
Este é um pouco menos simples, não?
1 - Mais fácil
Os comandos a baixos alteram as informações em uma seção padrão do registro para aplicativos VB: HKEY_CURRENT_USER\Software\VB and VBA Program Settings. Os comandos são simples e rápidos.
1.1 - Salvar informações
SaveSetting("Nome do Aplicativo", "Seção", "Chave", "Valor"), onde Nome do Aplicativo, Seção, Chave e Valor são Strings.
1.2 - Obter informações
GetSetting("Nome do Aplicativo", "Seção", "Chave", "Valor Padrão"), onde Valor Padrão é o valor que retornará caso o registro não exista.
1.3 - Apagar informações
DeleteSetting("Nome do Aplicativo", "Seção", "Chave"), onde Seção e Chave são opcionais.
2 - Menos fácil
Este método você pode salvar informações em qualquer parte do registro. Para efeito de organização do registro você deve salvar as informações na seção Software em CurrentUser, o que torna o aplicativo mais profissional.
Você dece colocar antes do Public Class Form:
Imports Microsoft.Win32
Para tal, o VB possui os seguintes comandos:
2.1 - Criar Pastas
Você pode criar novas seções sem criar novas chaves, basta utilizar os seguintes comandos:
Dim NovaChave As RegistryKey
NovaChave = My.Computer.Registry.CurrentUser.CreateSubKey("Software\Nome da Empresa\Nome do Aplicativo\Seção")
2.2 - Salvar informações
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Nome da Empresa\Nome do Aplicativo\Seção", "Chave", "Valor"
Se a seção não existir, ela será criada.
2.3 - Obter informações
Dim ValordaChave As Object
ValordaChave = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Nome da Empresa\Nome do Aplicativo\Seção", "Chave", "Valor Padrão"), onde Valor Padrão é o valor que irá retornar caso a chave não exista.
2.4 - Deletar informações
Existem três métodos:
2.4.1 - Apagar uma Chave
Using Chave As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Nome da Empresa\Nome do Aplicativo\Seção", True)
Chave.DeleteValue("Chave")
End Using
2.4.2 - Apagar uma Seção
Using Secao As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Nome da Empresa\Nome do Aplicativo", True)
Secao.DeleteSubKey("Seção")
End Using
2.4.3 - Apagar uma árvore de seções
Using Secao As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software", True)
Secao.DeleteSubKeyTree("Nome da Empresa")
End Using
Utilize com atenção estes comandos, pois você pode danificar a execução de programas e até do Windows.
Lembrete: você pode acessar o registro e fazer alterações manualmente nele colando REGEDIT em Executar (atalho do teclado: Ctrl+R).
Este é um pouco menos simples, não?
domingo, 11 de setembro de 2011
Mensagem na área de notificação
Para exibir uma mensagem na área de notificação tem se que ter o elemento NotifyIcon associado ao Form.
E os comandos são bem simples:
NotifyIcon1.BalloonTipIcon = ToolTipIcon
Qual ícone será exibido na mensagem. São eles:
1 - ToolTipIcon.Error;
2 - ToolTipIcon.Info
3 - ToolTipIcon.Warning.
NotifyIcon1.BalloonTipText = "Texto" 'O texto que será exibido na mensagem.
NotifyIcon1.BalloonTipTitle = "Título" 'O título da mensagem.
NotifyIcon1.ShowBalloonTip(Tempo) 'Comando para mostrar a mensagem, onde Tempo é o tempo em milissegundos que a mensagem será exibida.
Simples, não?
E os comandos são bem simples:
NotifyIcon1.BalloonTipIcon = ToolTipIcon
Qual ícone será exibido na mensagem. São eles:
1 - ToolTipIcon.Error;
2 - ToolTipIcon.Info
3 - ToolTipIcon.Warning.
NotifyIcon1.BalloonTipText = "Texto" 'O texto que será exibido na mensagem.
NotifyIcon1.BalloonTipTitle = "Título" 'O título da mensagem.
NotifyIcon1.ShowBalloonTip(Tempo) 'Comando para mostrar a mensagem, onde Tempo é o tempo em milissegundos que a mensagem será exibida.
Simples, não?
Marcadores:
Área,
Mensagem,
Notificação,
NotifyIcon,
Vb.Net
sábado, 10 de setembro de 2011
Como executar áudio na sua aplicação
O VB disponibiliza os seguintes métodos para execução de áudio:
1 - Executar áudio do sistema:
My.Computer.Audio.PlaySystemSound(SystemSound)
Sendo SystemSound áudios de curta duração pré-definidos pelo sistema e com as seguintes opções:
1.1 - Media.SystemSounds.Asterisk;
1.2 - Media.SystemSounds.Beep;
1.3 - Media.SystemSounds.Exclamation;
1.4 - Media.SystemSounds.Hand;
1.5 - Media.SystemSounds.Question.
2 - Executar áudio *.wav/*.wave
My.Computer.Audio.Play(caminho, modo)
Caminho: é o caminho completo do arquivo wav.
Modo:
2.1 - AudioPlayMode.Background: Executa uma vez o áudio e continua executando o código;
2.2 - AudioPlayMode.BackgroundLoop: Executa o áudio em loop até o comando de parar e o código continua sendo executado;
2.3 - AudioPlayMode.WaitToComplete: Executa o áudio e após o término do áudio continua executando o código.
O comando My.Computer.Audio.Stop() interrompe a execução do áudio.
Exemplos:
My.Computer.Audio.Play(C:\Windows\Media\audio.wav, AudioPlayMode.Background) My.Computer.Audio.Play(OpenFileDialog1.FileName, AudioPlayMode.WaitToComplete)
Simples, não?
1 - Executar áudio do sistema:
My.Computer.Audio.PlaySystemSound(SystemSound)
Sendo SystemSound áudios de curta duração pré-definidos pelo sistema e com as seguintes opções:
1.1 - Media.SystemSounds.Asterisk;
1.2 - Media.SystemSounds.Beep;
1.3 - Media.SystemSounds.Exclamation;
1.4 - Media.SystemSounds.Hand;
1.5 - Media.SystemSounds.Question.
2 - Executar áudio *.wav/*.wave
My.Computer.Audio.Play(caminho, modo)
Caminho: é o caminho completo do arquivo wav.
Modo:
2.1 - AudioPlayMode.Background: Executa uma vez o áudio e continua executando o código;
2.2 - AudioPlayMode.BackgroundLoop: Executa o áudio em loop até o comando de parar e o código continua sendo executado;
2.3 - AudioPlayMode.WaitToComplete: Executa o áudio e após o término do áudio continua executando o código.
O comando My.Computer.Audio.Stop() interrompe a execução do áudio.
Exemplos:
My.Computer.Audio.Play(C:\Windows\Media\audio.wav, AudioPlayMode.Background) My.Computer.Audio.Play(OpenFileDialog1.FileName, AudioPlayMode.WaitToComplete)
Simples, não?
quinta-feira, 8 de setembro de 2011
Converter cores de VB para Word e vice-versa
Quem trabalha com aplicações para edição de documentos Word pode ter se
percebido que o sistema de codificação numérica de cores do VB e do Word são
diferentes. Por exemplo, o código númerico para preto em VB é -16777216 e em
Word é 0.
A função a seguir converte a cor de um sistema para o outro:
Public Function ConverterCor(ByVal int As Integer) As Integer
Dim R, G, B As Integer
If int >= 0 Then 'Word
If int <= 255 Then
B = 0
G = 0
R = int
ElseIf int <= 65535 And int > 255 Then
B = 0
G = int \ 256
R = int - 256 * G
ElseIf int > 65535 Then
B = int \ 65536
G = (int - 65536 * B) \ 256
R = int - 65536 * B - 256 * G
End If
ConverterCor = 65536 * R + 256 * G + B - 16777216
Else 'VB
If int <= -16776961 Then
R = 0
G = 0
B = int + 16777216
ElseIf int > -16776961 And int <= -16711681 Then
R = 0
G = (int + 16777216) \ 256
B = int + 16777216 - 256 * G
ElseIf int > -16711681 Then
R = (int + 16777216) \ 65536
G = (int + 16777216 - 65536 * R) \ 256
B = int + 16777216 - 65536 * R - 256 * G
End If
ConverterCor = R + 256 * G + 65536 * B
End If
End Function
Esta função reconhece qual o sistema que foi inserido e retorna o outro.
A seguir exemplos para de aplicação desta função:
WordDoc.Paragraph.Font.Color = ConverterCor(TextBox1.ForeColor.toArgb)
TexBox1.ForeColor = Color.FromArgb(ConverterCor(WordDoc.Paragraph.Font.Color))
Este não foi simples não. Deu muito trabalho para descobrir as codificações.
A função a seguir converte a cor de um sistema para o outro:
Public Function ConverterCor(ByVal int As Integer) As Integer
Dim R, G, B As Integer
If int >= 0 Then 'Word
If int <= 255 Then
B = 0
G = 0
R = int
ElseIf int <= 65535 And int > 255 Then
B = 0
G = int \ 256
R = int - 256 * G
ElseIf int > 65535 Then
B = int \ 65536
G = (int - 65536 * B) \ 256
R = int - 65536 * B - 256 * G
End If
ConverterCor = 65536 * R + 256 * G + B - 16777216
Else 'VB
If int <= -16776961 Then
R = 0
G = 0
B = int + 16777216
ElseIf int > -16776961 And int <= -16711681 Then
R = 0
G = (int + 16777216) \ 256
B = int + 16777216 - 256 * G
ElseIf int > -16711681 Then
R = (int + 16777216) \ 65536
G = (int + 16777216 - 65536 * R) \ 256
B = int + 16777216 - 65536 * R - 256 * G
End If
ConverterCor = R + 256 * G + 65536 * B
End If
End Function
Esta função reconhece qual o sistema que foi inserido e retorna o outro.
A seguir exemplos para de aplicação desta função:
WordDoc.Paragraph.Font.Color = ConverterCor(TextBox1.ForeColor.toArgb)
TexBox1.ForeColor = Color.FromArgb(ConverterCor(WordDoc.Paragraph.Font.Color))
Este não foi simples não. Deu muito trabalho para descobrir as codificações.
Assinar:
Postagens (Atom)