c#的winform中,怎么取得某一网格的x,y坐标

yespie 2006-10-21 11:27:11
c#的winform中,怎么取得某一网格的x,y坐标(比如:5行,4列的坐标x,y)
谢谢!
...全文
465 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yespie 2006-10-27
  • 打赏
  • 举报
回复
奇怪,上次怎么结分,没结成功,今天重结分。
yespie 2006-10-24
  • 打赏
  • 举报
回复

好,先把分结了,我再试试,看效果如何,不行再请教
flowersea312 2006-10-24
  • 打赏
  • 举报
回复
帮顶
yespie 2006-10-23
  • 打赏
  • 举报
回复
对的,我不想让用户直接在Datagrid里直接输入数据,要用户先在textBox里输入数据,然后再把数据库提交到dataGrid里。
问题是怎么取得DataGird里某个格子(单元格)的坐标(分辨率x,y)值。
wheeler 2006-10-23
  • 打赏
  • 举报
回复
在属性里有窗体网格的单位的,自己照那个计算一下就可以了
jointan 2006-10-23
  • 打赏
  • 举报
回复
实际这个问题我在1楼就已经回答对你了,就是dataGrid.GetCellBounds(4, 3);

你可参考以下代码(这是我2002年时做的一个财务软件的代码,实际在DataGrid上用ComboBox覆盖单元格的方式来选择性输入数据)
private void m_DataGird_CurrentCellChanged(object sender, System.EventArgs e)
{
DataGridCell cell=this.m_DataGird.CurrentCell;
if(cell.ColumnNumber==2)
{
this.m_ListCCode.Bounds=this.m_DataGird.GetCurrentCellBounds();
if(!this.m_ListCCode.Visible)
this.m_ListCCode.Visible =true;
this.m_ListCCode.Focus();
}
else
{

if(this.m_ListCCode.Visible)
{
this.m_ListCCode.Visible =false;

}

}
}
其中m_ListCCode是一个ComboBox,它自身与DataGrid绑定同一个源,但他的容器不是Form,而是DataGrid,即在Form的构造函数中,有如下内容:
this.m_DataGrid.Controls.Add(this.m_ListCCode);
如果你要单元格相对窗口的坐标,只需要在GetCellBounds方法的返回值后,再加上DataGrid的坐标就可以了.
jointan 2006-10-22
  • 打赏
  • 举报
回复
莫非是你自己画的一个网格?
yespie 2006-10-22
  • 打赏
  • 举报
回复
我的意思是,比如鼠标点了5行/4列的哪个格子,我把一个textBox1移到5行/4列上面,这样的目的是让用户在textBox1上输入数据,输完后只要用户按了回车键,就把5行/4列的数据替换成textBox1的数据。然后textBox1自动移到6行/4列,继续输入下一行的数据。
csrwgs 2006-10-21
  • 打赏
  • 举报
回复
5行/4列 也是有大小的啊

用相对坐标可以算出来的
jointan 2006-10-21
  • 打赏
  • 举报
回复
是什么网格?
DataGird可以使用dataGrid.GetCellBounds(4, 3);
DataGirdView可以使用dataGridView.GetCellDisplayRectangle(4, 3, false);

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧