Как запретить отображение текста за значком поиска

Во-первых, перед вызовом f2.b(); для обновления некоторых элементов управления убедитесь, что дескриптор окна создан:

 f2.Show();

Если вы вызываете функцию aa() из другого Form (скажем, из Form1) сделайте Thread-Safe Call, который включает в себя вызов потока, если требуется.

class a
{
    private void aa()
    {
        Form2 f2 = new Form2();
        f2.Show();
        f2.b();
    }
}

public partial class Form2 : Form
{
    public void b()
    {
        Action a = delegate
        {
            UpdateControls();
        };

        MethodInvoker Invoker = new MethodInvoker(a);

        if (InvokeRequired)
            this.Invoke(Invoker);
        else
            a();
    }

    public void UpdateControls()
    {
        textbox1.Text = "xyz";
    }
}
0
задан Simple 19 January 2019 в 02:40
поделиться

3 ответа

Вот ваш модифицированный код, который, я считаю, достигает того, о чем вы просите. Я удалил класс search из вашего поиска, так как родительский узел имеет тот же класс.

.search-container{
    display:flex;
    width:70%;
}
.search{
    width:100%;
    position:relative;
    display: flex;
    flex-direction: row;
    border: 1px solid black;
}

.search:focus-within {
  outline-width: 1px;
  outline-color: rgb(166,200,255);
  outline-style: solid;
}

.search input{
    height:50px;
    width: 90%;
    padding:4px 0 4px 30px;
    font-size: 20px;
    border: none;
    outline: none;
}

.search i{
    display: flex;
    width: 10%;
    justify-content: center;
    align-items: center;
    font-size: 35px;
    padding: 0 .5em 0 .5em;
    color: dimgray;
}
<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title></title>
        <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css"
        integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
    </head>
    <body>
        <div class="search-container">
            <select class="name">
                <option value="Name-1">Name-1</option>
                <option value="Name-2">Name-2</option>
                <option value="Name-3">Name-3</option>
                <option value="Name-4">Name-4</option>
                <option value="Name-5">Name-5</option>
                <option value="Name-6">Name-6</option>
                <option value="Name-7">Name-7</option>
            </select>
            <div class="search">
                <input class="search-bar" type="text" name="search" autofocus placeholder="You can search for a name.">
                <i class="fas fa-search"></i>
            </div>
        </div>
    </body>
</html>

0
ответ дан classicalConditioning 19 January 2019 в 02:40
поделиться
  1. Вы можете добавить право padding к вашему входу и установить box-sizing на border-box.

  2. Есть пробел, потому что значок расположен не справа относительно входа, а относительно <div class="search"> , потому что это его первый позиционный (не статичный) элемент-предок . И если вы проверяете его в своем браузере, ваш значок находится там, где заканчивается этот div.

enter image description here

Вот фиксированный фрагмент:

.search-container{
    display:flex;
    width:70%;
}
.search{
    width:100%;
    position:relative;
}
.search input{
    height:50px;
    padding:4px 50px 4px 30px;
    font-size: 20px;
    box-sizing: border-box;
}
.search i{
    position: absolute;
    top:50%;
    right:10px;
    transform: translateY(-50%);
    font-size: 35px;
    color: dimgray;
}
<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title></title>
        <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css"
        integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
    </head>
    <body>
        <div class="search-container">
            <select class="name">
                <option value="Name-1">Name-1</option>
                <option value="Name-2">Name-2</option>
                <option value="Name-3">Name-3</option>
                <option value="Name-4">Name-4</option>
                <option value="Name-5">Name-5</option>
                <option value="Name-6">Name-6</option>
                <option value="Name-7">Name-7</option>
            </select>
            <div class="search">
                <input class="search-bar search" type="text" name="search" autofocus placeholder="You can search for a name.">
                <i class="fas fa-search"></i>
            </div>
        </div>
    </body>
</html>
[1122 ]

0
ответ дан Maarti 19 January 2019 в 02:40
поделиться

Из http://jsfiddle.net/Sadhana/2LHh9/ :

.search_box {
    background:url("http://png-5.findicons.com/files/icons/980/yuuminco/256/search.png");
    background-size:20px 20px;
    background-repeat:no-repeat;
    background-position: right;
    padding-right: 20px !important;
    padding-top: 2px !important;
    padding-bottom: 2px !important;
    padding-left: 5px !important;
    float: left;
}
<input type="text" class="textbox search_box" name="keywords" placeholder="Search..." />

0
ответ дан Bob 19 January 2019 в 02:40
поделиться