Arquivo da tag: Visual Basic

Vídeo – Introdução ao Visual Basic Editor

Zanzando pela web, mais especificamente pelo YouTube, sempre procuro alguns vídeos bacanas que ajudaria a sanar algumas dúvidas muito frequentes do nosso fórum. Infelizmente, é um pouco raro encontrar algo realmente bom de Excel. Em português então é quase uma saga.

Bom, com alguma sorte, consegui chegar ao vídeo do link abaixo. Sob a autoria do site TreinaInfo, ele dá um panorama geral do Editor de código do Visual Basic.

Para aqueles que estão conhecendo o VBA, vale mesmo a pena conferir.

Bom proveito!

Microsoft libera versão final do Service Pack 1 das ferramentas .Net Framework 3.5 e Visual Studio 2008

A Microsoft liberou a versão final do Service Pack 1 das ferramentas .Net Framework 3.5 e Visual Studio 2008.

Esses primeiros pacotes de atualizações são lançados agora, nove meses após a chegada dos dois produtos ao mercado. Segundo a Microsoft, os pacotes incluem não apenas correções, mas também alterações que atendem a sugestões feitas por usuários.

O SP1 do Visual Studio 2008, por exemplo, traz como novidade o suporte ao SQL Server 2008 – que está sendo lançado agora – e novos componentes, como o Ribbon, para incluir nos aplicativos faixas de opções no estilo das usadas no Office 2007. Esse último recurso está disponível para as linguagens Visual Basic e Visual C++.

Ainda segundo a empresa, o SP1 do .Net Framework 3.5 oferece melhorias de desempenho de 20% a 45% para aplicações baseadas em WPF (Windows Presentation Foundation). Esse ganho, sustenta a Microsoft, é obtido sem nenhuma alteração no código existente. Os dois pacotes SP1 também incorporam mudanças que têm o objetivo de facilitar o desenvolvimento das aplicações Windows que utilizam ASP.Net.

Os dois pacotes podem ser baixados nos seguintes endereços:

Visual Studio Service Pack 1

.Net Framework Service Pack 1

Fonte: INFO

C# – Usando o InputBox no C#

Desenvolvedores que vieram no Visual Basic e migram para qualquer que seja a linguagem, normalmente sentem falta de algumas funções “tradicionais”. Isso se resolve algumas formas, e no caso dos desenvolvedores C#, o caminho mais curto seria adicionar uma referência a dll Microsoft.VisualBasic, fazendo com que todas as funções legadas da linguagem tornem disponíveis.

Mas depender de uma linguagem antiga às vezes dá um mal estar, além do fato de, sabendo de todo o poder que a nova linguagem dispõe, pra usar as funções antigas?

Pois bem, para uma necessidade extremamente simples em um dos sistemas que estive construindo, precisei coletar um dado de forma tão simples que não fazia sentido algum criar um form para isso. Nisso, antes de sair fazendo alguma coisa, decidi dar uma pesquisada na net para ver se alguém já tinha aprontado alguma coisa nesse sentido, e realmente encontrei. O código abaixo é um form que possuir as mesmas características do InputBox:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
 
namespace System
{
	/// <summary>
	/// Summary description for InputBox.
	///
	public class InputBoxDialog : System.Windows.Forms.Form
	{
 
		#region Windows Contols and Constructor
 
		private System.Windows.Forms.Label lblPrompt;
		private System.Windows.Forms.Button btnOK;
		private System.Windows.Forms.TextBox txtInput;
		/// <summary>
		/// Required designer variable.
		///
		private System.ComponentModel.Container components = null;
 
		public InputBoxDialog()
		{
			//
			// Required for Windows Form Designer support
			//
			InitializeComponent();
 
			//
			// TODO: Add any constructor code after InitializeComponent call
			//
		}
 
		#endregion
 
		#region Dispose
 
		/// <summary>
		/// Clean up any resources being used.
		///
		protected override void Dispose(bool disposing)
		{
			if (disposing)
			{
				if (components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose(disposing);
		}
 
		#endregion
 
		#region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		///
		private void InitializeComponent()
		{
			this.lblPrompt = new System.Windows.Forms.Label();
			this.txtInput = new System.Windows.Forms.TextBox();
			this.btnOK = new System.Windows.Forms.Button();
			this.btnCancel = new System.Windows.Forms.Button();
			this.SuspendLayout();
			//
			// lblPrompt
			//
			this.lblPrompt.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
			| System.Windows.Forms.AnchorStyles.Left)
			| System.Windows.Forms.AnchorStyles.Right)));
			this.lblPrompt.BackColor = System.Drawing.SystemColors.Control;
			this.lblPrompt.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
			this.lblPrompt.Location = new System.Drawing.Point(12, 9);
			this.lblPrompt.Name = "lblPrompt";
			this.lblPrompt.Size = new System.Drawing.Size(302, 82);
			this.lblPrompt.TabIndex = 3;
			//
			// txtInput
			//
			this.txtInput.Location = new System.Drawing.Point(8, 100);
			this.txtInput.Name = "txtInput";
			this.txtInput.Size = new System.Drawing.Size(379, 20);
			this.txtInput.TabIndex = 0;
			//
			// btnOK
			//
			this.btnOK.Location = new System.Drawing.Point(320, 10);
			this.btnOK.Name = "btnOK";
			this.btnOK.Size = new System.Drawing.Size(75, 25);
			this.btnOK.TabIndex = 4;
			this.btnOK.Text = "&OK";
			this.btnOK.UseVisualStyleBackColor = true;
			this.btnOK.Click += new System.EventHandler(this.BtnOKClick);
			//
			// btnCancel
			//
			this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
			this.btnCancel.Location = new System.Drawing.Point(320, 41);
			this.btnCancel.Name = "btnCancel";
			this.btnCancel.Size = new System.Drawing.Size(75, 25);
			this.btnCancel.TabIndex = 5;
			this.btnCancel.Text = "&Cancel";
			this.btnCancel.UseVisualStyleBackColor = true;
			this.btnCancel.Click += new System.EventHandler(this.BtnCancelClick);
			//
			// InputBoxDialog
			//
			this.AcceptButton = this.btnOK;
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.BackColor = System.Drawing.SystemColors.Control;
			this.CancelButton = this.btnCancel;
			this.ClientSize = new System.Drawing.Size(398, 128);
			this.Controls.Add(this.btnCancel);
			this.Controls.Add(this.btnOK);
			this.Controls.Add(this.txtInput);
			this.Controls.Add(this.lblPrompt);
			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
			this.MaximizeBox = false;
			this.MinimizeBox = false;
			this.Name = "InputBoxDialog";
			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
			this.Text = "InputBox";
			this.Load += new System.EventHandler(this.InputBox_Load);
			this.ResumeLayout(false);
			this.PerformLayout();
		}
		private System.Windows.Forms.Button btnCancel;
		#endregion
 
		#region Private Variables
		string formCaption = string.Empty;
		string formPrompt = string.Empty;
		string inputResponse = string.Empty;
		string defaultValue = string.Empty;
		#endregion
 
		#region Public Properties
		public string FormCaption
		{
			get { return formCaption; }
			set { formCaption = value; }
		} // property FormCaption
		public string FormPrompt
		{
			get { return formPrompt; }
			set { formPrompt = value; }
		} // property FormPrompt
		public string InputResponse
		{
			get { return inputResponse; }
			set { inputResponse = value; }
		} // property InputResponse
		public string DefaultValue
		{
			get { return defaultValue; }
			set { defaultValue = value; }
		} // property DefaultValue
 
		#endregion
 
		#region Form and Control Events
		private void InputBox_Load(object sender, System.EventArgs e)
		{
			this.txtInput.Text = defaultValue;
			this.lblPrompt.Text = formPrompt;
			this.Text = formCaption;
			this.txtInput.SelectionStart = 0;
			this.txtInput.SelectionLength = this.txtInput.Text.Length;
			this.txtInput.Focus();
		}
		#endregion
 
		void BtnOKClick(object sender, EventArgs e)
		{
			InputResponse = this.txtInput.Text;
			this.Close();
		}
 
		void BtnCancelClick(object sender, EventArgs e)
		{
			this.Close();
		}
	}
}

Abaixo segue a função estática que permite a chamada da mesma forma que se fazia no VB:

1
2
3
4
5
6
7
8
9
10
11
public static string InputBox(string prompt,string title, string defaultValue)
{
	InputBoxDialog ib = new InputBoxDialog();
	ib.FormPrompt = prompt;
	ib.FormCaption = title;
	ib.DefaultValue = defaultValue;
	ib.ShowDialog();
	string s = ib.InputResponse;
	ib.Close();
	return s;
}

Além de resolver o problema, deu também aquele saudosismo. Bom, mesmo assim vou continuar no C#.

Referência: http://csharp.wikia.com/

Abraços

Tomás Vásquez
www.tomasvasquez.com.br