熟手一句话就可以帮我解决的问题(关于DATAGRID 右键改变索引)! 一般DATAGRID每行列表的的最前一列(不知道怎么描述,就是第一个字段前的那列空的)用鼠标左键点一下就可以选定焦点在当前行! 我现在做了个右键删除快捷菜单 但是 右键某行的时候,焦点(也就是那个箭头不能指向当前行)不能指想当前行!请问高手们怎么解决啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充一下:我这是WINFORM 不是WEBFORM 删除完毕后select(0);可以么?你要删除的时候焦点就移出去,那么删除结果正确么? 那你要的应该是这个了!赫赫!DataGrid.HitTestInfo 类包含有关指定坐标处的 System.Windows.Forms.DataGrid 一部分的信息。无法继承此类。有关此类型所有成员的列表,请参阅 DataGrid.HitTestInfo 成员。System.Object System.Windows.Forms.DataGrid.HitTestInfo[Visual Basic]NotInheritable Public Class DataGrid.HitTestInfo[C#]public sealed class DataGrid.HitTestInfo[C++]public __gc __sealed class DataGrid.HitTestInfo[JScript]public class DataGrid.HitTestInfo线程安全此类型的所有公共静态(Visual Basic 中为 Shared)成员是线程安全的。但不保证任何实例成员是线程安全的。备注DataGrid.HitTestInfo 类与 DataGrid 控件的 HitTest 方法一起使用,以确定用户单击了 DataGrid 控件的哪个部分。DataGrid.HitTestInfo 类包含行、列和网格中被单击的部分。有关网格部分的完整列表,请参见由 Type 属性返回的 DataGrid.HitTestType 枚举。要返回 DataGrid.HitTestInfo,请从 DataGrid 控件的 MouseDown 事件调用 HitTest 方法。将 MouseEventArgs 的 x 和 y 属性传递给 HitTest 方法。示例[Visual Basic, C#, C++] 下面的示例使用 MouseDown 事件中的 HitTest 方法返回 DataGrid.HitTestInfo 对象。然后打印行、列和网格的一部分。[Visual Basic] Public Sub DataGrid1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Console.WriteLine() Dim myHitTest As DataGrid.HitTestInfo ' Use the DataGrid control's HitTest method with the x and y properties. myHitTest = DataGrid1.HitTest(e.X, e.Y) Console.WriteLine("Column " & myHitTest.Column) Console.WriteLine("Row " & myHitTest.Row) Console.WriteLine("Type " & myHitTest.Type) Console.WriteLine("ToString " & myHitTest.ToString) Console.WriteLine("Format " & myHitTest.Type.ToString)End Sub[C#] protected void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){ Console.WriteLine(); System.Windows.Forms.DataGrid.HitTestInfo myHitTest; // Use the DataGrid control's HitTest method with the x and y properties. myHitTest = dataGrid1.HitTest(e.X,e.Y); Console.WriteLine(myHitTest); Console.WriteLine("Column " + myHitTest.Column); Console.WriteLine("Row " + myHitTest.Row); Console.WriteLine("Type " + myHitTest.Type); Console.WriteLine("ToString " + myHitTest.ToString()); Console.WriteLine("Hit " + myHitTest.Type.ToString());}[C++] protected:void dataGrid1_MouseDown(Object* /*sender*/, System::Windows::Forms::MouseEventArgs* e){ Console::WriteLine(); System::Windows::Forms::DataGrid::HitTestInfo* myHitTest; // Use the DataGrid control's HitTest method with the x and y properties. myHitTest = dataGrid1->HitTest(e->X,e->Y); Console::WriteLine(myHitTest); Console::WriteLine(S"Column {0}", __box(myHitTest->Column)); Console::WriteLine(S"Row {0}", __box(myHitTest->Row)); Console::WriteLine(S"Type {0}", __box(myHitTest->Type)); Console::WriteLine(S"ToString {0}", myHitTest); Console::WriteLine(S"Hit {0}", __box(myHitTest->Type));}[JScript] 没有可用于 JScript 的示例。若要查看 Visual Basic、C# 或 C++ 示例,请单击页左上角的“语言筛选器”按钮 。要求命名空间: System.Windows.Forms平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版程序集: System.Windows.Forms (在 System.Windows.Forms.dll 中)请参见DataGrid.HitTestInfo 成员 | System.Windows.Forms 命名空间 | CurrentCell | GetCellBounds | HitTest | DataGrid.HitTestType 你看这张图!http://whict.aooa.cn/1.jpg我点右键第三行的时候 右键菜单出来了,但是那个焦点 也就是肩头 还在第二行,当我点删除的时候我不是删除的第三行,而是第二行,!(我是根据索引号删除当前行!)所以我想问问怎样右键某行 也是使那肩头指向某行,这样我就很方面的删除了! 没有很麻烦吧!你看了上边的代码么?最多不过3,4行的有效代码! System.Windows.Forms.DataGrid.HitTestInfo myHitTest; myHitTest = dataGrid1.HitTest(e.X,e.Y); Console.WriteLine("Column " + myHitTest.Column); Console.WriteLine("Row " + myHitTest.Row);然后select选中,难道不行么? 不用hittest如何知道鼠标在哪行上?并不复杂,就两行代码。 回复人: fengcan(长风) ( ) 信誉:95 2005-11-21 10:34:00 得分: 0 不用hittest如何知道鼠标在哪行上?并不复杂,就两行代码。 说来听听! 怎样验证一个IP和端口是不是代理IP 为什么我无法调用到这个类里的方法,私有静态变量 类似这样的XML通过什么方式建立最方便 C# winform 中margin属性的设置 .net 下的process类和Thread类的具体的操作对象是什么? 關於打包發佈 問題 急 分给第一个答对的人 28000个字段匹配 Vc#界面简单问题 打印问题WINFORM下SQL2000/水晶报表,运行时,为何总要出现一个WINFORM要求输入服务器名称等信息? 关于javascript使用,请兄弟们给点经验 C#与SQL的问题
select(0);可以么?你要删除的时候焦点就移出去,那么删除结果正确么?
包含有关指定坐标处的 System.Windows.Forms.DataGrid 一部分的信息。无法继承此类。有关此类型所有成员的列表,请参阅 DataGrid.HitTestInfo 成员。System.Object
System.Windows.Forms.DataGrid.HitTestInfo[Visual Basic]
NotInheritable Public Class DataGrid.HitTestInfo
[C#]
public sealed class DataGrid.HitTestInfo
[C++]
public __gc __sealed class DataGrid.HitTestInfo
[JScript]
public class DataGrid.HitTestInfo
线程安全
此类型的所有公共静态(Visual Basic 中为 Shared)成员是线程安全的。但不保证任何实例成员是线程安全的。备注
DataGrid.HitTestInfo 类与 DataGrid 控件的 HitTest 方法一起使用,以确定用户单击了 DataGrid 控件的哪个部分。DataGrid.HitTestInfo 类包含行、列和网格中被单击的部分。有关网格部分的完整列表,请参见由 Type 属性返回的 DataGrid.HitTestType 枚举。要返回 DataGrid.HitTestInfo,请从 DataGrid 控件的 MouseDown 事件调用 HitTest 方法。将 MouseEventArgs 的 x 和 y 属性传递给 HitTest 方法。示例
[Visual Basic, C#, C++] 下面的示例使用 MouseDown 事件中的 HitTest 方法返回 DataGrid.HitTestInfo 对象。然后打印行、列和网格的一部分。[Visual Basic]
Public Sub DataGrid1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
Console.WriteLine()
Dim myHitTest As DataGrid.HitTestInfo
' Use the DataGrid control's HitTest method with the x and y properties.
myHitTest = DataGrid1.HitTest(e.X, e.Y)
Console.WriteLine("Column " & myHitTest.Column)
Console.WriteLine("Row " & myHitTest.Row)
Console.WriteLine("Type " & myHitTest.Type)
Console.WriteLine("ToString " & myHitTest.ToString)
Console.WriteLine("Format " & myHitTest.Type.ToString)
End Sub
[C#]
protected void dataGrid1_MouseDown
(object sender, System.Windows.Forms.MouseEventArgs e)
{
Console.WriteLine();
System.Windows.Forms.DataGrid.HitTestInfo myHitTest;
// Use the DataGrid control's HitTest method with the x and y properties.
myHitTest = dataGrid1.HitTest(e.X,e.Y);
Console.WriteLine(myHitTest);
Console.WriteLine("Column " + myHitTest.Column);
Console.WriteLine("Row " + myHitTest.Row);
Console.WriteLine("Type " + myHitTest.Type);
Console.WriteLine("ToString " + myHitTest.ToString());
Console.WriteLine("Hit " + myHitTest.Type.ToString());
}
[C++]
protected:
void dataGrid1_MouseDown(Object* /*sender*/, System::Windows::Forms::MouseEventArgs* e)
{
Console::WriteLine();
System::Windows::Forms::DataGrid::HitTestInfo* myHitTest;
// Use the DataGrid control's HitTest method with the x and y properties.
myHitTest = dataGrid1->HitTest(e->X,e->Y);
Console::WriteLine(myHitTest);
Console::WriteLine(S"Column {0}", __box(myHitTest->Column));
Console::WriteLine(S"Row {0}", __box(myHitTest->Row));
Console::WriteLine(S"Type {0}", __box(myHitTest->Type));
Console::WriteLine(S"ToString {0}", myHitTest);
Console::WriteLine(S"Hit {0}", __box(myHitTest->Type));
}
[JScript] 没有可用于 JScript 的示例。若要查看 Visual Basic、C# 或 C++ 示例,请单击页左上角的“语言筛选器”按钮 。要求
命名空间: System.Windows.Forms平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版程序集: System.Windows.Forms (在 System.Windows.Forms.dll 中)请参见
DataGrid.HitTestInfo 成员 | System.Windows.Forms 命名空间 | CurrentCell | GetCellBounds | HitTest | DataGrid.HitTestType
http://whict.aooa.cn/1.jpg我点右键第三行的时候 右键菜单出来了,但是那个焦点 也就是肩头 还在第二行,当我点删除的时候我不是删除的第三行,而是第二行,!(我是根据索引号删除当前行!)所以我想问问怎样右键某行 也是使那肩头指向某行,这样我就很方面的删除了!
最多不过3,4行的有效代码! System.Windows.Forms.DataGrid.HitTestInfo myHitTest;
myHitTest = dataGrid1.HitTest(e.X,e.Y);
Console.WriteLine("Column " + myHitTest.Column);
Console.WriteLine("Row " + myHitTest.Row);然后select选中,难道不行么?
不用hittest如何知道鼠标在哪行上?并不复杂,就两行代码。
说来听听!