PDA

View Full Version : Drag&Drop کردن اشیا روی فرم با استفاده از API



merlin_vista
دوشنبه 14 فروردین 1391, 01:26 صبح
سلام
من میخوام اشیا روی فرم را با استفاده از API جابجا کنم مثل دکمه ، تکس باکس و ... .
میشه واسم یه نمونه کد بزارید .
با تشکر

p.yazdkhasti
دوشنبه 14 فروردین 1391, 10:36 صبح
سلام
فرم شما تحت وب است یا ویندوز؟

Hybrid
دوشنبه 14 فروردین 1391, 11:00 صبح
سلام ، اصلا نیازی به استفاده از توابع API نیست ، قبلا یک برنامه نوشتم البته به زبان وی بی دات نت ، میتونین ازش استفاده کنید :

http://www.up.98ia.com/images/cjrnovdha46eic7p75y1.rar

موفق باشید

merlin_vista
دوشنبه 14 فروردین 1391, 12:37 عصر
ممنون
فرم ها که ویندوز هستند

vbBoss (http://barnamenevis.org/member.php?230007-vbBoss) :
حتما میخواهم از API استفاده کنم .

کد زیر همین کار رو انجام میده :
[DllImport("user32.dll")]
static extern int ReleaseCapture();
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
static extern int SendMessage(int hwnd, int wMsg, int wParam, object lParam);
private const int WM_NCLBUTTONDOWN = 161;

private void button1_MouseDown(object sender, MouseEventArgs e)
{
try
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(button1.Handle.ToInt32(), WM_NCLBUTTONDOWN, 2, 0);
}
}
catch { }

}

ولی خطا زیر را میگیره اگه دلیل خطا را هم بگید ممنون میشم
کنترل درست حرکت میکنه ولی وقتی Drag تموم میشه و رها میکنم موس را خطا زیر میده
A call to PInvoke function 'WindowsFormsApplication1!WindowsFormsApplication1 .Form1::SendMessage' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.

با تشکر /موفق باشید

merlin_vista
دوشنبه 14 فروردین 1391, 12:55 عصر
پارامتر آخر را از object به int تغییر دادم مشکل حل شد
با تشکر