2017-02-16 5 views
0

Я пытаюсь изменить MouseEventArgs местоположения собственности, так что я могу использовать поддельное место для события щелчка, но я получаю эту ошибку:Изменить MouseEventArgs расположение

«Свойство или индексатор«System.Windows.Forms.MouseEventArgs.Y 'не может быть назначен - это только для чтения»

Вот мой код:

private void ListView_MouseDown(object sender, MouseEventArgs e) 
{ 
    e.Location.Y = 10; 
    // e.Location = new Point(x,y) doesn't work too 
} 
+1

Что не работает о создании нового экземпляра 'структуры Point'? –

+0

Вы не сможете установить «e.Location» таким образом. «Только чтение» означает именно то, на что это похоже. –

+0

та же ошибка: «Свойству или индектеру« System.Windows.Forms.MouseEventArgs.Location »присвоено не присвоено - оно только для чтения» – Mhd

ответ

0

Как предложил @LarsTech, я могу создать новый MouseEventArgs

private void ListView_MouseDown(object sender, MouseEventArgs e) 
{ 
    MouseEventArgs myEventArgs = new MouseEventArgs(e.Button, e.Clicks, e.X, e.Y - offset, e.Delta); 
    // Now I can use the new EventArgs instead 
} 
0

MouseEventArgs имеет 2 свойства X и Y и они оба определены следующим образом:

public int X { get; } 

public int Y { get; } 

У них обоих нет сеттеров, поэтому они доступны только для чтения. Вот почему вы не можете их установить.

Смежные вопросы