PDA

View Full Version : سوال: تنظیم location فرم هنگام مقدار دهی با کد



amir200h
سه شنبه 13 فروردین 1392, 13:14 عصر
سلام به همه دوستان.
من مقدار top و left فرمم رو در ریجستری دخیره میکنم
ولی هنگامی که فرم بارگزاری میشه و مقدارو از ریجستری درون top و left فرمم میریزم عکس العمل نشون نمیده


private void Form3_Move(object sender, EventArgs e)
{
txttop.Text = Location.Y.ToString();
txtleft.Text = Location.X.ToString();
}


private void Form3_FormClosed(object sender, FormClosedEventArgs e)
{
try
{

reg.SetValue("Top", txttop.Text);
reg.SetValue("Left", txtleft.Text);
}
catch { }
}

private void Form3_Activated(object sender, EventArgs e)
{
try
{
this.Top = (int)reg.GetValue("Top");
this.Left = (int)reg.GetValue("Left");
}
catch { }
}

plus
سه شنبه 13 فروردین 1392, 13:22 عصر
اونجایی که در رجیستری میریزین، رشته رو با int.Parse به عدد تبدیل کنید.
کدی که در رویداد Activated نوشتین رو در Load بنویسید.اگه بازم کار نکرد با Debug میتونید بفهمید مشکل از درست ذخیره نشدن مختصات هست یا از درست جابجا نشدن فرم...

amir200h
سه شنبه 13 فروردین 1392, 13:43 عصر
مرسی از راهنماییت. این راه هارو رفته بودم به جواب نرسیده بودم

amir200h
سه شنبه 13 فروردین 1392, 14:23 عصر
به جواب رسیدم. اینم کدش شاید به درد کسی خورد


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;

namespace regedit1
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\90711224", true);

private void Form3_Move(object sender, EventArgs e)
{
txttop.Text = Location.Y.ToString();
txtleft.Text = Location.X.ToString();
}


private void Form3_FormClosed(object sender, FormClosedEventArgs e)
{
try
{

reg.SetValue("Top", txttop.Text);
reg.SetValue("Left", txtleft.Text);
reg.SetValue("Witdth", txtwidth.Text);
reg.SetValue("Height", txtheight.Text);
}
catch { }
}




private void Form3_Leave(object sender, EventArgs e)
{
this.Close();
Application.Exit();
}

private void Form3_SizeChanged(object sender, EventArgs e)
{
if (lblc.Text == "1")
{
txtheight.Text = this.Height.ToString();
txtwidth.Text = this.Width.ToString();
}
}

private void Form3_Activated(object sender, EventArgs e)
{
try
{

txttop.Text = reg.GetValue("Top").ToString();
this.Top = int.Parse(txttop.Text);
txtleft.Text = reg.GetValue("Left").ToString();
this.Left = int.Parse(txtleft.Text);
txtheight.Text = reg.GetValue("Height").ToString();
txtwidth.Text = reg.GetValue("Witdth").ToString();
this.Height = int.Parse(txtheight.Text);
this.Width = int.Parse(txtwidth.Text);
}
catch { }
lblc.Text = "1";
}


}
}