private void textBox1_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) textBox2.Focus();
}
private void textBox2_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode = Keys.Enter) textBox3.Focus();
}
private void textBox3_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) textBox1.Focus();
}
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΡΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ
ΠΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_VScroll Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΡΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°.
ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π² Π½Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΡΡΠ²ΠΎΠΊ ΠΈΠ· ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π. ΠΡΡΠΊΠΈΠ½Π° Β«ΠΡΠ±ΡΠΎΠ²ΡΠΊΠΈΠΉΒ». Π’Π°ΠΊΠΆΠ΅ Π½Π° ΡΠΎΡΠΌΠ΅ Π½Π°Π΄ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΡΠ΅ΡΡΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ°, ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Ρ Π΅Π³ΠΎ Π½Π° ΠΎΠ΄Π½Ρ ΡΡΡΠΎΡΠΊΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π²Π½ΠΈΠ· ΠΈ Π²Π²Π΅ΡΡ . Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.2 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°.
ΠΠΈΡΡΠΈΠ½Π³ 4.2[DllImport("coredll.dll")]
extern static int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
/// <summary>
/// Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Windows Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠ»ΠΎΡΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ
/// </summary>
const int WM_VSCROLL = 0x115;
// ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_VSCROLL
const int SB_LINEUP = 0:
const int SB_LINEDOWN = 1;
const int SB_PAGEUP = 2;
const int SB_PAGEDOWN = 3;
private void Form1_Load(object sender, EventArgs e) {
// ΠΡΡΡΠ²ΠΎΠΊ ΠΈΠ· ΠΏΠΎΠ²Π΅ΡΡΠΈ Π.Π‘.ΠΡΡΠΊΠΈΠ½Π° "ΠΡΠ±ΡΠΎΠ²ΡΠΊΠΈΠΉ"
txtBook.Text = @"ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ ΡΠΎΠΌΡ Π½Π°Π·Π°Π΄ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ²ΠΎΠΈΡ
ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΉ ΠΆΠΈΠ» ΡΡΠ°ΡΠΈΠ½Π½ΡΠΉ ΡΡΡΡΠΊΠΈΠΉ Π±Π°ΡΠΈΠ½, ΠΠΈΡΠΈΠ»Π° ΠΠ΅ΡΡΠΎΠ²ΠΈΡ Π’ΡΠΎΠ΅ΠΊΡΡΠΎΠ².
ΠΠ³ΠΎ Π±ΠΎΠ³Π°ΡΡΡΠ²ΠΎ, Π·Π½Π°ΡΠ½ΡΠΉ ΡΠΎΠ΄ ΠΈ ΡΠ²ΡΠ·ΠΈ Π΄Π°Π²Π°Π»ΠΈ Π΅ΠΌΡ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²Π΅Ρ Π² Π³ΡΠ±Π΅ΡΠ½ΠΈΡΡ ,
Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈΠ΅. Π‘ΠΎΡΠ΅Π΄ΠΈ ΡΠ°Π΄Ρ Π±ΡΠ»ΠΈ ΡΠ³ΠΎΠΆΠ΄Π°ΡΡ ΠΌΠ°Π»Π΅ΠΉΡΠΈΠΌ Π΅Π³ΠΎ
ΠΏΡΠΈΡ ΠΎΡΡΠΌ; Π³ΡΠ±Π΅ΡΠ½ΡΠΊΠΈΠ΅ ΡΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠΈ ΡΡΠ΅ΠΏΠ΅ΡΠ°Π»ΠΈ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ; ΠΠΈΡΠΈΠ»Π°
ΠΠ΅ΡΡΠΎΠ²ΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π» Π·Π½Π°ΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΎΡΡΡΠ°ΡΡΠΈΡ ΠΊΠ°ΠΊ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΡΡ Π΄Π°Π½Ρ; Π΄ΠΎΠΌ Π΅Π³ΠΎ
Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ» ΠΏΠΎΠ»ΠΎΠ½ Π³ΠΎΡΡΡΠΌΠΈ, Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΠΈΡΡ Π΅Π³ΠΎ Π±Π°ΡΡΠΊΡΡ ΠΏΡΠ°Π·Π΄Π½ΠΎΡΡΡ,
ΡΠ°Π·Π΄Π΅Π»ΡΡ ΡΡΠΌΠ½ΡΠ΅, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Π±ΡΠΉΠ½ΡΠ΅ Π΅Π³ΠΎ ΡΠ²Π΅ΡΠ΅Π»Π΅Π½ΠΈΡ.";
}
private void butUp_Click(object sender, EventArgs e) {
// Π½Π° ΠΎΠ΄Π½Ρ ΡΡΡΠΎΡΠΊΡ Π²Π²Π΅ΡΡ
SendMessage(txtBook.Handle, WM_VSCROLL, SB_LINEUP, 0);
}
private void butDown_Click(object sender, EventArgs e) {
// Π½Π° ΠΎΠ΄Π½Ρ ΡΡΡΠΎΡΠΊΡ Π²Π½ΠΈΠ·
SendMessage(txtBook.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
}
private void butPageUp_Click(object sender, EventArgs e) {
// Π½Π° ΠΎΠ΄Π½Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π²Π²Π΅ΡΡ
SendMessage(txtBook.Handle, WM_VSCROLL, SB_PAGEUP, 0);
}
private void butPageDown_Click(object sender, EventArgs e) {
// Π½Π° ΠΎΠ΄Π½Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π²Π½ΠΈΠ·
SendMessageCtxtBook.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
}
ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡ. 4.1.
Π ΠΈΡ. 4.1. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ°
ΠΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ Π² ΠΊΠ½ΠΎΠΏΠΊΠ΅
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ. ΠΠΎ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ ΡΡΠΈΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ GetWindowLong ΠΈ SetWindowLong, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.3.
[DllImport("coredll.dll")]
private static extern IntPtr GetCapture();
[DllImport("coredll.dll")]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("coredll.dll")]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex,
int dwNewLong);
public const int GWLSTYLE = -16;
// ΡΡΠΈΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
public const int BS_MULTILINE = 0x2000;
private void Form1_Load(object sender, EventArgs e) {
IntPtr hWnd;
int style;
this.butMultiline.Capture = true;
hWnd = GetCapture();
this.butMultiline.Capture = false;
style = GetWindowLong(hWnd, GWL_STYLE);
SetWindowLong(hWnd, GWL_STYLE, style | BS_MULTILINE);
}
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ (ΡΠΈΡ. 4.2).
Π ΠΈΡ. 4.2. ΠΠΈΠ΄ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΎΡΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ»Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ butMultiline, Π° Π²ΡΠΎΡΠ°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡΡΠ°Π΅ΡΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π³ΡΠ°Π½ΠΈΡΠ°Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΡΠ»ΠΎΠ²Π° ΠΎΠ±ΡΠ΅Π·Π°ΡΡΡΡ, ΠΈ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ (ΡΠΈΡ. 4.3).
Π ΠΈΡ. 4.3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅
ΠΠΠΠΠΠΠΠΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π΅ΡΠ΅ Π΄Π»Ρ .NET Compact Framework 1.0. Π .NET Compact Framework 2.0 Π½Π΅Ρ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ GetCapture() Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° hWnd, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Control.Handle.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠΈΠ½Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° ComboBox
ΠΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠ°Π²Π΅Π½ ΡΠΈΡΠΈΠ½Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ComboBox. ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.4.
ΠΠΈΡΡΠΈΠ½Π³ 4.4/// <summary>
/// Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΡΠ°Π·ΠΌΠ΅ΡΡ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°
/// ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
/// </summary>
const int CB_GETDROPPEDWIDTH = 0x015f;
/// <summary>
/// Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠ΅Π΅ ΡΠ°Π·ΠΌΠ΅ΡΡ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°
/// ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
/// </summary>
const int CB_SETDROPPEDWIDTH = 0x0160;
[DllImport("coredll.dll")]
static extern int SendMessage(IntPtr hwnd, int msg, int wParam, int lParam);
private void Form1_Load(object sender, EventArgs e) {
comboBox1.Items.Add("Π Π°Π·");
comboBox1.Items.Add("ΠΠ²Π°");
comboBox1.Items.Add("Π’ΡΠΈ");
comboBox2.Items.Add("ΠΠ»ΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ");
comboBox2.Items.Add("ΠΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ");
comboBox2.Items.Add("Hy ΠΎΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ");
// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ ΡΠΈΡΠΈΠ½Ρ
SendMessage(comboBox2.Handle, CB_SETDROPPEDWIDTH, 200, 0);
// ΠΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΡΠΈΠ½Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°
int retval = SendMessage(comboBox2.Handle, CB_GETDROPPEDWIDTH, 0, 0);
this.Text = retval.ToString();
}
ΠΠ° ΡΠΎΡΠΌΠ΅ Π½Π°Π΄ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΄Π²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ComboBox. ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ. Π Π²ΡΠΎΡΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ CB_SETDROPPEDWIDTH ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° 200. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π² ΡΠΈΡΠΈΠ½Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ 200 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ².
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (ΡΠΈΡ. 4.4). ΠΠ½ΠΎ Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π ΠΈΡ. 4.4. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ. Π£ Π½Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²Π΅ΡΡ ΡΠ΅ΠΊΡΡ (ΡΠΈΡ. 4.5).
Π ΠΈΡ. 4.5. Π£Π²Π΅Π»ΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° Ρ ComboBox
ListBox
ΠΠ»Π΅ΠΌΠ΅Π½Ρ ListBox ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ .NET Compact Framework. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π΄Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ. ΠΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ LB_FINDSTRING.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π° ΡΠΎΡΠΌΡ ΡΠΏΠΈΡΠΎΠΊ ListBox ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ TextBox. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.5.
ΠΠΈΡΡΠΈΠ½Π³ 4.5const int LB_FINDSTRING = 0x018F;
const int LB_FINDSTRINGEXACT = 0x01A2;
[DllImport("coredll.dll")]
static extern int SendMessage(IntPtr hwnd, int msg,
int wParam, string lParam);
private void textBox1_TextChanged(object sender, EventArgs e) {
//ΠΏΠΎΠΈΡΠΊ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ
listBox1.SelectedIndex =
SendMessage(listBox1.Handle, LB_FINDSTRING, -1, textBox1.Text);
}
private void Form1_Load(object sender. EventArgs e) {
listBox1.Items.Add("bank");
listBox1.Items.Add("banana");
listBox1.Items.Add("ball");
listBox1.Items.Add("bounty");
listBox1.Items.Add("bar");
}
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π²Π²Π΅ΡΡΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π»ΡΠ±ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ. ΠΡΠ»ΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ Π΅ΡΡΡ ΡΠ»ΠΎΠ²Π°, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠΎ ΠΎΠ½ΠΈ Π½Π°ΡΠ½ΡΡ Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π²Π²Π΅ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ» b, Π·Π°ΡΠ΅ΠΌ a ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, l. Π‘Π½Π°ΡΠ°Π»Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ bank, Π° ΠΏΠΎΡΠ»Π΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π½Π° ΡΠ»ΠΎΠ²ΠΎ ball.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ LB_FINDSTRINGEXACT, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ΅Π»ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ Π±Π΅Π· ΡΡΠ΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°. ΠΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΡΠ½ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΠΎΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π·Π°Π½ΡΡΠΈΠ΅ΠΌ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 4.6.