C#中如何在一个窗体中调用另一个窗体控件中的数据

C#中如何在一个窗体中调用另一个窗体控件中的数据,第1张

在C#中,您可以通过以下几种方式在一个窗体中调用另一个窗体的控件中的数据:

使用对话框形式调用另一个窗体,在打开的窗体中通过控件名称读取数据。

通过实例化另一个窗体,将其显示为模态对话框,读取控件中的数据。

通过使用公共属性或公共方法从另一个窗体读取数据。

以下是一个例子,该例子使用对话框形式调用另一个窗体:

Form2 frm = new Form2();

frmShowDialog();

textBox1Text = frmtextBox2Text;

在上面的代码中,我们实例化了窗体Form2,并调用了ShowDialog()方法将其显示为模态对话框。 然后,我们读取了窗体Form2中textBox2的文本,并将其分配给主窗体中的textBox1。

如果你要多次连接数据库可以先定义一个公共类(用来连接数据库并读取表中数据)如图(右键将另存看得清楚些)。

在程序中定义一个公共方法,调用方法显示数据在datagridview

void RefreshData()

{

string sqlStr;

DataSet ds = new DataSet();

sqlStr = "select  from  表名";

ds = DataBaseGetData(sqlStr);

if (ds != null)

{

dgrdvCardDataSource = dsTables[0];

dgrdvCardColumns[0]HeaderText = "// 要显示数据的列名";                                dgrdvCardColumns[0]Width = 168;

dgrdvCardColumns[1]HeaderText = "// 要显示数据的列名";

dgrdvCardColumns[1]Width = 159;   。。。。。// 有几列就写几列

}

else

{

dgrdvCardDataSource = null;

}

}

根据描述推荐使用MID函数提取

Excel版本参考:2010

假设数据在A1单元格

1、B1输入=MID(A1,6,5)

2、回车,查看效果

函数简单解析:

MID语法:MID(字符或者字符所在单元格,开始位置,提取个数)

就是在form1定义全局变量,你的引用方式不对,在form2引用的时候,方式为类名+变量

就是 Form1R 这样就有了 你直接 R的话 只能识别当前class下的变量,

调用哪里的全局变量,在前面加上对应的class名

网站环境不同,不同程序有不同的数据库配置位置以discuz为例,其他的随机应变:

1Discuz论坛的数据库在程序中有设置文件对应查询账号密码,目录位置:

/config/config_globalphp

/uc_server/data/configincphp

/config/config_ucenterphp

文件都含有Discuz论坛数据库的登录账号密码信息,可以参考查询数据库信息。

网站本身的数据库是和程序分开的,大部分主机都是储存在两个空间。小型虚拟主机,没有权限查看数据库文件,但是会提供在线管理的工具,一般在空间后台有提供链接。

云主机,快云VPS,云服务器,以及独立主机,都有远程服务器管理权限的,直接登录远程,就可以查看数据库位置。

目前的情况看,快云VPS都自带云数据库,也有管理平台,可以后台直接打开,登录管理数据库。

不知道你解决了没,最近正好研究python。

hwnd=win32guiFindWindow()这个获取窗体句柄,大概都会用;

ctrl=win32guiFindWindowEx(hwnd,None,'窗口类名',‘标题文本’)已知控件类名或控件名时获取控件句柄,这个标题文本不一定存在,所以使用None默认值获取的是该窗口类名中第一个顺位的控件句柄。

你使用b=win32guiGetDlgItem(edit,资源ID)最终结果是获取的是句柄,这里的资源ID其实是spy++中的窗口ID,句柄是可变的,窗口ID是不可变的。这里似乎错了,你这样子大概获取的是控件中的子项(控件有子项的话,比如Combox中的edit框),我猜的,没试过。b=win32guiGetDlgItem(hwnd,窗口ID)是已知ID下获取某控件句柄

如果你想获取某个控件的ID则ctrlid=win32guiGetDlgCtrlID(ctrl)这是一只某控件句柄的情况下获取该控件在应用程序中的窗口ID。

如果不知控件句柄的情况下大概可以试试spy++获取窗口ID,把窗口ID(这个是16进制的)转化成10进制带进b=win32guiGetDlgItem(hwnd,窗口ID)大概也可以得到控件句柄。

其实就是三个函数之间的转化

ctrl=win32guiFindWindowEx(hwnd,None,'edit',None)控件句柄

ctrlid=win32guiGetDlgCtrlID(ctrl)控件的窗口id

ctrl2=win32guiGetDlgItem(hwnd,ctrlid)控件句柄

print "%x" %ctrllist

print "%x" %ctrlid

print "%x" %ctrl

输出,看一下数据与spy++是否一致。然后ctrl=ctrl2

这个问题难以解决--浏览器安全限制同源策略,提供几个策略

关闭浏览器同源策略,办法自行百度,当然这仅限自己浏览器用。

在同源策略情况下,iframe页面间通信,但这要求你对两个网站有控制权,需要在两个页面写js发送消息,接受消息,这种意义不大。

在同源策略情况下,设置反向代理服务器,挂载到自己域名下,方法自行百度,设置完后,你可以直接在自己网页写js *** 作B页面dom,获取B页面数据,并将其展示至A页面上,或者直接用js伪造一个xhr请求直接拿数据。

以上就是关于C#中如何在一个窗体中调用另一个窗体控件中的数据全部的内容,包括:C#中如何在一个窗体中调用另一个窗体控件中的数据、C#窗体应用程序通过一个click事件实现从数据库中提取数据,并在datagridview控件中显示出来,代码怎么实现、用C#怎么读取网站的一个数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9606549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存