Ich habe eine Liste mit einer Reihe von gezeichneten Kontrollkästchen darin.Klicken auf Drawn Checkbox
Derzeit, wenn ich auf das gezeichnete Kontrollkästchen in der Listenansicht klicke, klickt es entweder auf das erste Kontrollkästchen in dieser Spalte oder gar nicht.
Ich weiß, dass es etwas mit dem Temploint zu tun hat, also kann ich, nachdem ich dies hoffentlich veröffentlicht habe, selbst zur Lösung kommen, bevor jemand antwortet: P.
Dies ist, wo die Checkbox
gezogen wirdprivate void lstSourceToUser_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
if (e.ColumnIndex > 1)
{
int usrIndex = userProfile.GetUserIndexByID(e.Header.Name);
int srcIndex = userProfile.GetUsersSourceIndex(e.Header.Name, e.Item.SubItems[0].Text);
Graphics g = e.Graphics;
CheckBoxRenderer.DrawCheckBox(g,new Point((e.Bounds.X + e.Bounds.Width/2 -10),(e.Bounds.Y)), userProfile.SystemUserList[usrIndex].fusionUserSources[srcIndex].UserSourceChkBox.MyCheckedState ? CheckBoxState.CheckedNormal : CheckBoxState.UncheckedNormal);
}
else
// Draw the other subitems with default drawing.
e.DrawDefault = true;
}
Und das ist, wo das Click-Ereignis
private void lstSourceToUser_MouseClick(object sender, MouseEventArgs e)
{
ListViewItem.ListViewSubItem subItem = lstSourceToUser.HitTest(e.X, e.Y).SubItem;
if (subItem.Name != "")
{
Point tempPoint = new Point(e.X, e.Y);
int userIndex = userProfile.GetUserIndexByName(subItem.Name);
Rectangle rect = new Rectangle(subItem.Bounds.X, subItem.Bounds.Y, 100, subItem.Bounds.Height);
if (rect.Contains(tempPoint))
{
int srcIndex = userProfile.GetUserSourceIndexByUserName(subItem.Name, lstSourceToUser.SelectedItems[0].SubItems[0].Text);
userProfile.SystemUserList[userIndex].fusionUserSources[srcIndex].UserSourceChkBox.MyCheckedState = !userProfile.SystemUserList[userIndex].fusionUserSources[srcIndex].UserSourceChkBox.MyCheckedState;
this.lstSourceToUser.Invalidate();
}
}
}
passiert wäre Jede Hilfe sei es Lösungen oder Links/guides geschätzt werden :) Danke
Überprüfen Sie, ob die 'subItem.Bounds.Y' die korrekte y-Position für alle Elemente meldet! – TaW