Контроль прозрачности путем рисования элементов управления фоновым изображением [дубликат]

Как объяснил scompt.com , запрос может завершиться ошибкой. Используйте этот код, чтобы получить ошибку запроса или правильный результат:

$username = $_POST['username'];
$password = $_POST['password'];

$result = mysql_query("
SELECT * FROM Users 
WHERE UserName LIKE '".mysql_real_escape_string($username)."'
");

if($result)
{
    while($row = mysql_fetch_array($result))
    {
        echo $row['FirstName'];
    }
} else {
    echo 'Invalid query: ' . mysql_error() . "\n";
    echo 'Whole query: ' . $query; 
}

Для получения дополнительной информации см. Документацию для mysql_query() .

Фактической ошибкой были одиночные кавычки, так что переменная $username не анализировалась. Но вы действительно должны использовать mysql_real_escape_string($username), чтобы избежать инъекций SQL.

56
задан Nic Szer 8 November 2015 в 16:50
поделиться

5 ответов

Элемент управления Label поддерживает прозрачность. Просто дизайнер не позволит вам правильно разместить ярлык. Элемент управления PictureBox не является элементом управления контейнером, поэтому форма становится родителем метки. Итак, вы видите фон формы.

Легко исправить, добавив немного кода в конструктор формы. Вам нужно будет изменить свойство родительского ярлыка и пересчитать его местоположение, так как оно теперь относительно поля изображения вместо формы. Например:

    public Form1() {
        InitializeComponent();
        var pos = this.PointToScreen(label1.Location);
        pos = pictureBox1.PointToClient(pos);
        label1.Parent = pictureBox1;
        label1.Location = pos;
        label1.BackColor = Color.Transparent;
    }

Похоже на это во время выполнения:

enter image description here [/g0]


Другой подход - это решить дизайн времени. Это просто принимает атрибут. Добавьте ссылку на System.Design и добавьте класс в свой проект, вставьте этот код:

using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design;    // Add reference to System.Design

[Designer(typeof(ParentControlDesigner))]
class PictureContainer : PictureBox {}
137
ответ дан Hans Passant 26 August 2018 в 22:30
поделиться

Используя Visual Studio с Windows Form, вы можете применять прозрачность к ярлыкам или другим элементам, добавляя с помощью System.Drawing; в Form1.Designer.cs Таким образом, у вас будет прозрачность, доступная на панели «Свойства» (в «Внешний вид в BackColor»). Или просто отредактируйте код в Designer.cs this.label1.BackColor = System.Drawing.Color.Transparent;

-2
ответ дан Andrei Magic 26 August 2018 в 22:30
поделиться

Вы можете нарисовать текст с помощью TextRenderer, который будет рисовать его без фона:

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    TextRenderer.DrawText(e.Graphics, 
                          overallpercent.ToString("#0") + "%", 
                          this.Font, 
                          new Point(10, 10), 
                          Color.Red);
}

Когда изменяется общее значение, обновите pictureBox:

pictureBox1.Refresh();

Вы также можете использовать Graphics. DrawString, но TextRenderer.DrawText (с использованием GDI) работает быстрее, чем DrawString (GDI +)

Также посмотрите здесь другой здесь и ссылку DrawText здесь

9
ответ дан Community 26 August 2018 в 22:30
поделиться

Вы можете просто использовать

label1.Parent = pictureBox1;
label1.BackColor = Color.Transparent; // You can also set this in the designer, as stated by ElDoRado1239
34
ответ дан Fusion_ 26 August 2018 в 22:30
поделиться

Легко для вашего дизайна. Вы можете разместить свою метку внутри панели. и установить фоновое изображение панели - это то, что вы хотите. установленный фон метки прозрачен

5
ответ дан Grey Wolf 26 August 2018 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: