I`m vb.net программист и я нашел решение моей проблемы, но в C# по этому адресу: Button inside a winforms textboxКнопка внутри WinForms текстовое поле vb.net
Я преобразовал код vb.net, и она работает хорошо, за исключением того, текст идет снизу здесь кнопка мой переделанный и C# код, пожалуйста скажите мне, где i`m неправильно
C# кОД
protected override void OnLoad(EventArgs e) {
var btn = new Button();
btn.Size = new Size(25, textBox1.ClientSize.Height + 2);
btn.Location = new Point(textBox1.ClientSize.Width - btn.Width, -1);
btn.Cursor = Cursors.Default;
btn.Image = Properties.Resources.star;
textBox1.Controls.Add(btn);
// Send EM_SETMARGINS to prevent text from disappearing underneath the button
SendMessage(textBox1.Handle, 0xd3, (IntPtr)2, (IntPtr)(btn.Width << 16));
base.OnLoad(e);
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
Мой VB.NET кОД
btn.Size = New Size(25, Me.ClientSize.Height + 2)
btn.Location = New Point(Me.ClientSize.Width - btn.Width - 1)
btn.FlatStyle = FlatStyle.Flat
btn.Cursor = Cursors.Default
btn.Image = Image.FromFile("C:\ansoft\Soljica\texture\tone.png")
btn.FlatAppearance.BorderSize = 0
textbox1.Controls.Add(btn)
SendMessage(textbox1.Handle, &HED3, CType(2, IntPtr), CType((btn.Width << 16), IntPtr))
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wp As IntPtr, ByVal lp As IntPtr) As IntPtr
End Function
Что не так с кодом vb.net, если кто-нибудь может сказать мне PLS?
Для C# кода кредитов идет на: Hans Passant
Похоже, вы добавили «E» при преобразовании сообщения с C# в VB. '& HED3' должен быть' & HD3'. – endofzero
Пробовал, но все еще не работает :( – user2877885