Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Я поиграл с цифрами и сумел поставить свою позицию водяного знака в верхнем левом углу с помощью следующих кодов:
if (rbHorl.Checked == true && rbVerl.Checked == true)//VTop Left
{
X = (int)10;
Y = (int)-30;
}
Я также понял, что перепутал себя с маркировкой моих кнопок и следовательно, неправильные коды используются для позиций слева вверху, в центре и справа.
Что касается не увеличения текста в текстовом поле при увеличении размера текста водяного знака, я удалил следующую строку кода из моих существующих кодов (закомментировано):
private void btnSetfont_Click(object sender, EventArgs e)
{
//defailt the current font and color to that
//used in the watermark textbox
fontDialog1.ShowColor = true;
//fontDialog1.Font = tbWatermarktext.Font;
fontDialog1.Color = tbWatermarktext.ForeColor;
if(fontDialog1.ShowDialog() != DialogResult.Cancel)
{
myFont = fontDialog1.Font;
myWatermarkColor = fontDialog1.Color;
//tbWatermarktext.Font = fontDialog1.Font;
tbWatermarktext.ForeColor = fontDialog1.Color;
}
}
Несмотря на решение двух вышеупомянутых проблем, у меня все еще есть проблема, когда позиция водяного знака будет понижаться, если размер текста водяного знака установлен слишком большим. На этом изображении размер водяного знака, равный 72, сделает положение водяного знака «вверху слева» похожим на центральное левое положение: