C#winform有2个panel,在右边panel获取鼠标的坐标(x,y),如何传递到panel1上弹出的窗口form2里面呢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#winform有2个panel,在右边panel获取鼠标的坐标(x,y),如何传递到panel1上弹出的窗口form2里面呢相关的知识,希望对你有一定的参考价值。
panel1上面一个按钮点击会弹出form2窗口。
下面是panel2鼠标单击响应事件,如何让x,y传递到form2表单的一个textbox.text里呢
private void splitContainer1_Panel2_Mouseclick(object sender,MouseEventArgs e)
int x;
int y;
x = e.X;
y = e.Y;
另外我如何让form1里面弹出form2响应事件写:
Form2 fm2 = new Form2();
fm2.ShowDialog();
是不是就无法再form1.splitcontainer,panel2里面点击鼠标了,有办法解决吗
public static Int16 x;
public static Int16 y;
form2的load()事件里面写
TextBox1.text="x="+form1.x.tostring()+",y="+form1.y.tostring();
第二个问题你试试用fm2.show();追问
form2.Textbox1这个控件可以放X,Y坐标,有没有其他控件比这个更好的存储X,Y坐标啊
追答看你是用作什么用途了,只是显示的话我一般是用label的
追问我就是想把坐标存到数据库的
追答那你读完直接插入到数据库就好了.
静态的参数就方便存放一些比较固定的数据,例如账户信息等.
class Form2:Form
//......
public void ShowData(int x, int y)
textBox1.Text=x;
textBox2.Text=y;
//....
在看Form1中:
class Form1:Form
//这里需要一个Form2的变量,而非局部变量.因为需要跨函数调用.
Form2 form2;
private void button1_Click(object sender, EventArgs e)
form2.Show();
private void splitContainer1_Panel2_Mouseclick(object sender,MouseEventArgs e)
form2.ShowData(e.X,e.Y);
追问
textBox1.Text=x;
textBox2.Text=y;
这个地方textBox1和textBox2有错误啊,我在form2里面加了2个textBox的
textBox1和textBox2是我随便模拟的两个啊.
你直接把这个换成你自己加的textBox的名字.
=0=你是初学者吗?好可爱的感觉.
提出这种问题的不是初学者吗。
追答我错了.还有问题吗?你这样一来一回的.分都扣没了.
参考技术CForm1和Form2分别是两个窗体?要把Form1的值传到Form2中对吧?并且Form1 单击之后出现From2
追问嗯,是的,我想在FORM2中的两个textbox能自动获取到form1.panel2里面鼠标点击的值
追答Form2中:
Form2加个构造函数
int x,y;
public From2(int x,int y)
this.x=x;
this.y=y;
显示的时候直接等于x和y就好了
Form1中:
int x,y;
得到值得时候赋值给x,y
Form2显示代码
Form2 f=Form2(x,y);
f.show();
这样就好了
Winform 设置panel容器的背景为pictureBox
1.要实现C# WinForm中的控件与背景的透明,可以通过设置控件的BackColor属性为Transparent,同时设置其父控件。因为在C#中,控件的透明指对父窗体透明。如果不设置Parent属性,那么控件将只对Form透明,显示的时候都会把Form的背景色(默认为Control)重刷一遍作为自己的背景。
2.在控件比较多的情况下,可以使用Panel控件,将某一组的控件都放到Panel中,然后只对此panel设置背景透明即可,则其他控件都跟着实现了背景透明。
demo:
现有一PictureBox控件,十多个Label以及Button,那么只将这些Label和Button放入Panel中。同时在Form_Load事件中加入如下代码即可实现背景透明:
this.picturebox1.SendToBack();//将背景图片放到最下面
this.panel1.BackColor = Color.Transparent;//将Panel设为透明
this.panel1.Parent = this.picturebox1;//将panel父控件设为背景图片控件
this.panel1.BringToFront();//将panel放在前面
以上代码即可实现所有的控件都对PictueBox背景图片透明。
以上是关于C#winform有2个panel,在右边panel获取鼠标的坐标(x,y),如何传递到panel1上弹出的窗口form2里面呢的主要内容,如果未能解决你的问题,请参考以下文章
Winform 设置panel容器的背景为pictureBox
winform 窗体加载的问题,C#里不同Panel中窗体的调用
winform 窗体加载的问题,C#里不同Panel中窗体的调用