Задать вопрос
@Almaz02

Как сделать удаление inline клавиатуры, после нажатия на кнопку и появления другой?

Здравствуйте. Меня озаботила проблема с inline клавиатурой в телеграм-боте.
После нажатия на кнопку "Двери", мне бы хотелось, чтобы на место этого сообщения вывелся текст, который выводится ниже.

649988f5656b2829291430.png

InlineKeyboardMarkup inlineKeyboardchooseGlue = new(new[]
    {
        new[] { InlineKeyboardButton.WithCallbackData("Клеи для пластика", "glueForPlastic") },
        new[] { InlineKeyboardButton.WithCallbackData("Универсальные клеи", "universalGlue") },
        new[] { InlineKeyboardButton.WithCallbackData("Клеи для обоев", "wallpaperGlue") }
    });

    InlineKeyboardMarkup inlineKeyboardchooseWindow = new(new[]
    {
        new[] { InlineKeyboardButton.WithCallbackData("Окна для дома", "windowsForTheHouse") },
        new[] { InlineKeyboardButton.WithCallbackData("Бронированные окна", "armoredWindows") }
    });    
    InlineKeyboardMarkup inlineKeyboardchooseDoors = new(new[]
    {
        new[] { InlineKeyboardButton.WithCallbackData("Входные двери", "entranceDoors") },
        new[] { InlineKeyboardButton.WithCallbackData("Двери для бани и сауны", "doorsForBathsAndSaunas") }
    });

    if (callbackQuery.Data != null)
    {
        if (callbackQuery.Data == "chooseGlue")
        {
            Message sentMessage = await botClient.SendTextMessageAsync(
                chatId: callbackQuery.Message.Chat.Id,
                text: "Ассортимент клеев:",
                replyMarkup: inlineKeyboardchooseGlue);
        }
        else if (callbackQuery.Data == "chooseWindow")
        {
            Message sentMessage = await botClient.SendTextMessageAsync(
                chatId: callbackQuery.Message.Chat.Id, 
                text: "Выберите подходящие окна", 
                replyMarkup: inlineKeyboardchooseWindow);
        }
        else if (callbackQuery.Data == "chooseDoors")
        {
            Message sentMessage = await botClient.SendTextMessageAsync(
                chatId: callbackQuery.Message.Chat.Id,
                text: "Выберите подходящие двери",
                replyMarkup: inlineKeyboardchooseWindow);
        }
    }
  • Вопрос задан
  • 139 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Almaz02 Автор вопроса
В общем, это называется обновлением сообщений.
Нужно использовать метод editMessageText

Теперь код отправки сообщения выглядит так:

Message sentMessage = await botClient.EditMessageTextAsync(
                chatId: callbackQuery.Message.Chat.Id, 
                messageId: callbackQuery.Message.MessageId,
                text: "Ассортимент клеев", 
                replyMarkup: inlineKeyboardchooseGlue);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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