155 lines
7.5 KiB
C#
155 lines
7.5 KiB
C#
namespace DualScreenDemo
|
||
{
|
||
/*
|
||
* 主要視窗 (PrimaryForm) 的部分定義
|
||
* 負責初始化搜尋按鈕並處理歌曲搜尋 UI 相關邏輯
|
||
*/
|
||
public partial class PrimaryForm
|
||
{
|
||
// 各種歌曲搜尋按鈕及其對應的背景圖片 (一般狀態 / 啟動狀態)
|
||
private Button zhuyinSearchSongButton;
|
||
private Bitmap zhuyinSearchSongNormalBackground;
|
||
private Bitmap zhuyinSearchSongActiveBackground;
|
||
private Button englishSearchSongButton;
|
||
private Bitmap englishSearchSongNormalBackground;
|
||
private Bitmap englishSearchSongActiveBackground;
|
||
private Button wordCountSearchSongButton;
|
||
private Bitmap wordCountSearchSongNormalBackground;
|
||
private Bitmap wordCountSearchSongActiveBackground;
|
||
private Button pinyinSearchSongButton;
|
||
private Bitmap pinyinSearchSongNormalBackground;
|
||
private Bitmap pinyinSearchSongActiveBackground;
|
||
private Button handWritingSearchSongButton;
|
||
private Bitmap handWritingSearchSongNormalBackground;
|
||
private Bitmap handWritingSearchSongActiveBackground;
|
||
private Button numberSearchSongButton;
|
||
private Bitmap numberSearchSongNormalBackground;
|
||
private Bitmap numberSearchSongActiveBackground;
|
||
|
||
/// <summary>
|
||
/// 點擊「歌曲搜尋」按鈕時的事件處理函式
|
||
/// 1. 更新導航按鈕的背景圖片,使「歌曲搜尋」按鈕顯示為啟動狀態
|
||
/// 2. 隱藏其他搜尋/分類 UI,僅顯示歌曲搜尋選單
|
||
/// 3. 若有 QR Code 顯示,則將其隱藏
|
||
/// </summary>
|
||
private void SongSearchButton_Click(object sender, EventArgs e)
|
||
{
|
||
// 更新導航按鈕的背景圖片
|
||
newSongAlertButton.BackgroundImage = newSongAlertNormalBackground;
|
||
hotPlayButton.BackgroundImage = hotPlayNormalBackground;
|
||
singerSearchButton.BackgroundImage = singerSearchNormalBackground;
|
||
songSearchButton.BackgroundImage = songSearchActiveBackground;
|
||
languageSearchButton.BackgroundImage = languageSearchNormalBackground;
|
||
groupSearchButton.BackgroundImage = groupSearchNormalBackground;
|
||
categorySearchButton.BackgroundImage = categorySearchNormalBackground;
|
||
orderedSongsButton.BackgroundImage = orderedSongsNormalBackground;
|
||
myFavoritesButton.BackgroundImage = myFavoritesNormalBackground;
|
||
promotionsButton.BackgroundImage = promotionsNormalBackground;
|
||
deliciousFoodButton.BackgroundImage = deliciousFoodNormalBackground;
|
||
isOnOrderedSongsPage = false;
|
||
|
||
ResetinputBox();
|
||
string query = $"SELECT * FROM song_library_cache WHERE language_name = '國語' LIMIT 100";
|
||
var searchResult = SearchSongs_Mysql(query);
|
||
currentPage = 0;
|
||
currentSongList = searchResult;
|
||
totalPages = (int)Math.Ceiling((double)searchResult.Count / itemsPerPage);
|
||
|
||
|
||
multiPagePanel.currentPageIndex = 0;
|
||
multiPagePanel.LoadSongs(currentSongList);
|
||
|
||
// 隱藏其他 UI
|
||
SetHotSongButtonsVisibility(false);
|
||
SetNewSongButtonsVisibility(false);
|
||
SetSingerSearchButtonsVisibility(false);
|
||
SetPictureBoxLanguageButtonsVisibility(false);
|
||
SetGroupButtonsVisibility(false);
|
||
SetPictureBoxCategoryAndButtonsVisibility(false);
|
||
SetZhuYinSingersAndButtonsVisibility(false);
|
||
SetZhuYinSongsAndButtonsVisibility(false);
|
||
SetEnglishSingersAndButtonsVisibility(false);
|
||
SetPinYinSingersAndButtonsVisibility(false);
|
||
SetPinYinSongsAndButtonsVisibility(false);
|
||
SetPictureBoxToggleLightAndButtonsVisibility(false);
|
||
SetPictureBoxSceneSoundEffectsAndButtonsVisibility(false);
|
||
|
||
// 顯示歌曲搜尋選單按鈕
|
||
SetSongSearchButtonsVisibility(true);
|
||
|
||
// 隱藏 QR Code (若有)
|
||
if (pictureBoxQRCode != null)
|
||
{
|
||
pictureBoxQRCode.Visible = false;
|
||
closeQRCodeButton.Visible = false;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 設定「歌曲搜尋」相關按鈕的可見性
|
||
/// </summary>
|
||
/// <param name="isVisible">是否顯示</param>
|
||
private void SetSongSearchButtonsVisibility(bool isVisible)
|
||
{
|
||
pictureBox4.Visible = isVisible; // 控制搜尋 UI 背景的可見性
|
||
|
||
// 歌曲搜尋的按鈕陣列
|
||
Button[] songSearchButtons = {
|
||
zhuyinSearchSongButton,
|
||
englishSearchSongButton,
|
||
wordCountSearchSongButton,
|
||
pinyinSearchSongButton,
|
||
handWritingSearchSongButton,
|
||
numberSearchSongButton
|
||
};
|
||
|
||
// 設定按鈕可見性,若顯示則移至最前
|
||
foreach (var button in songSearchButtons)
|
||
{
|
||
button.Visible = isVisible;
|
||
if (isVisible)
|
||
{
|
||
button.BringToFront();
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 初始化所有「歌曲搜尋」按鈕
|
||
/// 依據不同的搜尋方式 (注音、英文、拼音、筆劃、手寫、數字) 建立對應按鈕
|
||
/// </summary>
|
||
private void InitializeButtonsForSongSearch()
|
||
{
|
||
// 初始化「注音搜尋」按鈕
|
||
InitializeSearchButton(ref zhuyinSearchSongButton, "zhuyinSearchSongButton",
|
||
1214, 230, 209, 59, ref zhuyinSearchSongNormalBackground, ref zhuyinSearchSongActiveBackground,
|
||
normalStateImageSongQuery, mouseDownImageSongQuery, ZhuyinSearchSongsButton_Click);
|
||
|
||
// 初始化「英文搜尋」按鈕
|
||
InitializeSearchButton(ref englishSearchSongButton, "englishSearchSongButton",
|
||
1214, 293, 209, 58, ref englishSearchSongNormalBackground, ref englishSearchSongActiveBackground,
|
||
normalStateImageSongQuery, mouseDownImageSongQuery, EnglishSearchSongsButton_Click);
|
||
|
||
// 初始化「拼音搜尋」按鈕
|
||
InitializeSearchButton(ref pinyinSearchSongButton, "pinyinSearchSongButton",
|
||
1214, 356, 209, 58, ref pinyinSearchSongNormalBackground, ref pinyinSearchSongActiveBackground,
|
||
normalStateImageSongQuery, mouseDownImageSongQuery, PinyinSearchSongsButton_Click);
|
||
|
||
// 初始化「筆劃搜尋」按鈕
|
||
InitializeSearchButton(ref wordCountSearchSongButton, "wordCountSearchSongButton",
|
||
1214, 418, 209, 59, ref wordCountSearchSongNormalBackground, ref wordCountSearchSongActiveBackground,
|
||
normalStateImageSongQuery, mouseDownImageSongQuery, WordCountSearchSongsButton_Click);
|
||
|
||
// 初始化「手寫搜尋」按鈕
|
||
InitializeSearchButton(ref handWritingSearchSongButton, "handWritingSearchSongButton",
|
||
1214, 481, 209, 59, ref handWritingSearchSongNormalBackground, ref handWritingSearchSongActiveBackground,
|
||
normalStateImageSongQuery, mouseDownImageSongQuery, HandWritingSearchButtonForSongs_Click);
|
||
|
||
// 初始化「數字搜尋」按鈕
|
||
InitializeSearchButton(ref numberSearchSongButton, "numberSearchSongButton",
|
||
1214, 544, 209, 58, ref numberSearchSongNormalBackground, ref numberSearchSongActiveBackground,
|
||
normalStateImageSongQuery, mouseDownImageSongQuery, SongIDSearchSongsButton_Click);
|
||
}
|
||
}
|
||
}
|