歌星字數查詢鍵盤改寫

This commit is contained in:
jasonchenwork 2025-03-24 17:32:33 +08:00
parent c7bf8d9e69
commit 7ac4cea4d8
44 changed files with 909 additions and 179 deletions

View File

@ -584,8 +584,9 @@ namespace DualScreenDemo
InitializeButtonsForZhuYinSongs(); InitializeButtonsForZhuYinSongs();
InitializeButtonsForEnglishSingers(); InitializeButtonsForEnglishSingers();
InitializeButtonsForEnglishSongs(); InitializeButtonsForEnglishSongs();
InitializeButtonsForPictureBoxArtistSearch(); //InitializeButtonsForPictureBoxArtistSearch();
InitializeButtonsForWordCountSongs(); InitializeButtonsForWordCountSongs();
InitializeButtonsForWordCountSingers();
InitializeButtonsForPinYinSingers(); InitializeButtonsForPinYinSingers();
InitializeButtonsForPinYinSongs(); InitializeButtonsForPinYinSongs();
InitializeButtonsForSongIDSearch(); InitializeButtonsForSongIDSearch();
@ -789,6 +790,14 @@ namespace DualScreenDemo
Visible = false Visible = false
}; };
pictureBoxWordCountSingers = new PictureBox
{
Name = "pictureBoxWordCountSingers",
BackColor = Color.Transparent,
SizeMode = PictureBoxSizeMode.StretchImage,
Visible = false
};
pictureBoxPinYinSingers = new PictureBox pictureBoxPinYinSingers = new PictureBox
{ {
Name = "pictureBoxPinYinSingers", Name = "pictureBoxPinYinSingers",
@ -902,7 +911,7 @@ namespace DualScreenDemo
this.Controls.Add(pictureBoxEnglishSingers); this.Controls.Add(pictureBoxEnglishSingers);
this.Controls.Add(pictureBoxEnglishSongs); this.Controls.Add(pictureBoxEnglishSongs);
this.Controls.Add(pictureBoxArtistSearch); this.Controls.Add(pictureBoxArtistSearch);
this.Controls.Add(pictureBoxWordCount); this.Controls.Add(pictureBoxWordCountSingers);
this.Controls.Add(pictureBoxPinYinSingers); this.Controls.Add(pictureBoxPinYinSingers);
this.Controls.Add(pictureBoxPinYinSongs); this.Controls.Add(pictureBoxPinYinSongs);
this.Controls.Add(pictureBoxHandWritingSingers); this.Controls.Add(pictureBoxHandWritingSingers);

View File

@ -65,7 +65,7 @@ namespace DualScreenDemo
SetPinYinSingersAndButtonsVisibility(false); // 隱藏拼音搜尋相關控件 SetPinYinSingersAndButtonsVisibility(false); // 隱藏拼音搜尋相關控件
SetHandWritingForSingersAndButtonsVisibility(false); // 隱藏手寫搜尋相關控件 SetHandWritingForSingersAndButtonsVisibility(false); // 隱藏手寫搜尋相關控件
SetZhuYinSingersAndButtonsVisibility(true); // 顯示注音搜尋相關控件 SetZhuYinSingersAndButtonsVisibility(true); // 顯示注音搜尋相關控件
SetPictureBoxArtistSearchAndButtonsVisibility(false); // 隱藏其他搜尋模式的圖片框 //SetPictureBoxArtistSearchAndButtonsVisibility(false); // 隱藏其他搜尋模式的圖片框
// 顯示「注音歌手搜尋」的圖片框 // 顯示「注音歌手搜尋」的圖片框
pictureBoxZhuYinSingers.Visible = true; pictureBoxZhuYinSingers.Visible = true;

View File

@ -46,7 +46,7 @@ namespace DualScreenDemo
SetPinYinSingersAndButtonsVisibility(false); SetPinYinSingersAndButtonsVisibility(false);
SetHandWritingForSingersAndButtonsVisibility(false); SetHandWritingForSingersAndButtonsVisibility(false);
SetEnglishSingersAndButtonsVisibility(true); SetEnglishSingersAndButtonsVisibility(true);
SetPictureBoxArtistSearchAndButtonsVisibility(false); //SetPictureBoxArtistSearchAndButtonsVisibility(false);
pictureBoxEnglishSingers.Visible = true; pictureBoxEnglishSingers.Visible = true;
} }

View File

@ -45,7 +45,7 @@ namespace DualScreenDemo
SetZhuYinSingersAndButtonsVisibility(false); SetZhuYinSingersAndButtonsVisibility(false);
SetEnglishSingersAndButtonsVisibility(false); SetEnglishSingersAndButtonsVisibility(false);
SetPinYinSingersAndButtonsVisibility(false); SetPinYinSingersAndButtonsVisibility(false);
SetPictureBoxArtistSearchAndButtonsVisibility(false); //SetPictureBoxArtistSearchAndButtonsVisibility(false);
SetHandWritingForSingersAndButtonsVisibility(true); SetHandWritingForSingersAndButtonsVisibility(true);
this.ResumeLayout(); this.ResumeLayout();

View File

@ -41,7 +41,7 @@ namespace DualScreenDemo
SetZhuYinSingersAndButtonsVisibility(false); SetZhuYinSingersAndButtonsVisibility(false);
SetEnglishSingersAndButtonsVisibility(false); SetEnglishSingersAndButtonsVisibility(false);
SetPinYinSingersAndButtonsVisibility(true); SetPinYinSingersAndButtonsVisibility(true);
SetPictureBoxArtistSearchAndButtonsVisibility(false); //SetPictureBoxArtistSearchAndButtonsVisibility(false);
pictureBoxPinYinSingers.Visible = true; pictureBoxPinYinSingers.Visible = true;
} }

View File

@ -90,7 +90,7 @@ namespace DualScreenDemo
InitializeSearchButton(ref pinyinSearchButton, "pinyinSearchButton", 1214, 356, 209, 58, ref pinyinSearchNormalBackground, ref pinyinSearchActiveBackground, normalStateImageArtistQuery, mouseDownImageArtistQuery, PinyinSingerSearchButton_Click); InitializeSearchButton(ref pinyinSearchButton, "pinyinSearchButton", 1214, 356, 209, 58, ref pinyinSearchNormalBackground, ref pinyinSearchActiveBackground, normalStateImageArtistQuery, mouseDownImageArtistQuery, PinyinSingerSearchButton_Click);
InitializeSearchButton(ref wordCountSearchButton, "strokeCountSearchButton", 1214, 418, 209, 59, ref wordCountSearchNormalBackground, ref wordCountSearchActiveBackground, normalStateImageArtistQuery, mouseDownImageArtistQuery, WordCountSearchButton_Click); InitializeSearchButton(ref wordCountSearchButton, "workCountSearchButton", 1214, 418, 209, 59, ref wordCountSearchNormalBackground, ref wordCountSearchActiveBackground, normalStateImageArtistQuery, mouseDownImageArtistQuery, WordCountSearchSingersButton_Click);
InitializeSearchButton(ref handWritingSearchButton, "handWritingSearchButton", 1214, 481, 209, 59, ref handWritingSearchNormalBackground, ref handWritingSearchActiveBackground, normalStateImageArtistQuery, mouseDownImageArtistQuery, HandWritingSearchButtonForSingers_Click); InitializeSearchButton(ref handWritingSearchButton, "handWritingSearchButton", 1214, 481, 209, 59, ref handWritingSearchNormalBackground, ref handWritingSearchActiveBackground, normalStateImageArtistQuery, mouseDownImageArtistQuery, HandWritingSearchButtonForSingers_Click);
} }

View File

@ -85,7 +85,7 @@ namespace DualScreenDemo
SetEnglishSingersAndButtonsVisibility(false); // 隱藏英文字母搜尋相關控件 SetEnglishSingersAndButtonsVisibility(false); // 隱藏英文字母搜尋相關控件
SetPinYinSingersAndButtonsVisibility(false); // 隱藏拼音搜尋相關控件 SetPinYinSingersAndButtonsVisibility(false); // 隱藏拼音搜尋相關控件
SetHandWritingForSingersAndButtonsVisibility(false); // 隱藏手寫搜尋相關控件 SetHandWritingForSingersAndButtonsVisibility(false); // 隱藏手寫搜尋相關控件
SetPictureBoxArtistSearchAndButtonsVisibility(false); // 隱藏其他搜尋模式的圖片框 //SetPictureBoxArtistSearchAndButtonsVisibility(false); // 隱藏其他搜尋模式的圖片框
SetSongIDSearchAndButtonsVisibility(true); // 顯示字數搜尋相關控件 SetSongIDSearchAndButtonsVisibility(true); // 顯示字數搜尋相關控件
// 顯示「注音歌手搜尋」的圖片框 // 顯示「注音歌手搜尋」的圖片框

View File

@ -38,21 +38,21 @@ namespace DualScreenDemo
private Button clearButtonWordCountSongs; private Button clearButtonWordCountSongs;
private Button closeButtonWordCountSongs; private Button closeButtonWordCountSongs;
private string[] numberWordCountSymbols; //private string[] numberWordCountSymbols;
private (int X, int Y, int Width, int Height)[] numberWordCountButtonCoords; //private (int X, int Y, int Width, int Height)[] numberWordCountButtonCoords;
private Dictionary<string, (string normal, string mouseDown, string mouseOver)> numberWordCountButtonImages; //private Dictionary<string, (string normal, string mouseDown, string mouseOver)> numberWordCountButtonImages;
private (int X, int Y, int Width, int Height) modifyButtonWordCountCoords; //private (int X, int Y, int Width, int Height) modifyButtonWordCountCoords;
private (int X, int Y, int Width, int Height) clearButtonWordCountCoords; //private (int X, int Y, int Width, int Height) clearButtonWordCountCoords;
private (int X, int Y, int Width, int Height) closeButtonWordCountCoords; //private (int X, int Y, int Width, int Height) closeButtonWordCountCoords;
private RichTextBox inputBoxWordCountSongs; private RichTextBox inputBoxWordCountSongs;
private (int X, int Y, int Width, int Height) inputBoxWordCountCoords; //private (int X, int Y, int Width, int Height) inputBoxWordCountCoords;
private string inputBoxWordCountFontName; //private string inputBoxWordCountFontName;
private float inputBoxWordCountFontSize; //private float inputBoxWordCountFontSize;
private FontStyle inputBoxWordCountFontStyle; //private FontStyle inputBoxWordCountFontStyle;
private Color inputBoxWordCountForeColor; //private Color inputBoxWordCountForeColor;
/// <summary> /// <summary>
/// <para> 點擊「注音歌手搜尋」按鈕時執行的事件處理函式。</para> /// <para> 點擊「注音歌手搜尋」按鈕時執行的事件處理函式。</para>
@ -83,7 +83,7 @@ namespace DualScreenDemo
SetPinYinSingersAndButtonsVisibility(false); // 隱藏拼音搜尋相關控件 SetPinYinSingersAndButtonsVisibility(false); // 隱藏拼音搜尋相關控件
SetHandWritingForSingersAndButtonsVisibility(false); // 隱藏手寫搜尋相關控件 SetHandWritingForSingersAndButtonsVisibility(false); // 隱藏手寫搜尋相關控件
SetPictureBoxArtistSearchAndButtonsVisibility(false); // 隱藏其他搜尋模式的圖片框 //SetPictureBoxArtistSearchAndButtonsVisibility(false); // 隱藏其他搜尋模式的圖片框
SetWordCountSongsAndButtonsVisibility(true); // 顯示字數搜尋相關控件 SetWordCountSongsAndButtonsVisibility(true); // 顯示字數搜尋相關控件
// 顯示「注音歌手搜尋」的圖片框 // 顯示「注音歌手搜尋」的圖片框
pictureBoxWordCountSongs.Visible = true; pictureBoxWordCountSongs.Visible = true;
@ -94,7 +94,7 @@ namespace DualScreenDemo
/// <para>從 config.ini 設定檔中載入注音符號NumberWordCount Symbols。</para> /// <para>從 config.ini 設定檔中載入注音符號NumberWordCount Symbols。</para>
/// <para>讀取 ini 檔的 [NumberWordCountSymbols] 區塊並將「Symbols」欄位的值解析為陣列。</para> /// <para>讀取 ini 檔的 [NumberWordCountSymbols] 區塊並將「Symbols」欄位的值解析為陣列。</para>
/// </summary> /// </summary>
private void LoadNumberWordCountSymbolsFromConfig() /*private void LoadNumberWordCountSymbolsFromConfig()
{ {
// 建立 INI 檔案解析器 // 建立 INI 檔案解析器
var parser = new FileIniDataParser(); var parser = new FileIniDataParser();
@ -116,7 +116,7 @@ namespace DualScreenDemo
// 將符號字串以逗號分隔,轉換為字串陣列 // 將符號字串以逗號分隔,轉換為字串陣列
numberWordCountSymbols = symbols.Split(','); numberWordCountSymbols = symbols.Split(',');
} }*/
/// <summary> /// <summary>
@ -140,14 +140,14 @@ namespace DualScreenDemo
/// </summary> /// </summary>
/// <param name="data">已解析的 INI 設定數據。</param> /// <param name="data">已解析的 INI 設定數據。</param>
/// <returns>回傳包含注音符號的字串陣列。</returns> /// <returns>回傳包含注音符號的字串陣列。</returns>
private string[] LoadNumberWordCountSymbols(IniData data) /*private string[] LoadNumberWordCountSymbols(IniData data)
{ {
// 從 INI 檔案的 [NumberWordCountSymbols] 區塊取得 Symbols 欄位值 // 從 INI 檔案的 [NumberWordCountSymbols] 區塊取得 Symbols 欄位值
string symbols = data["NumberWordCountSymbols"]["Symbols"]; string symbols = data["NumberWordCountSymbols"]["Symbols"];
// 以逗號分隔字串並轉換為字串陣列 // 以逗號分隔字串並轉換為字串陣列
return symbols.Split(','); return symbols.Split(',');
} }*/
/// <summary> /// <summary>
@ -244,7 +244,7 @@ namespace DualScreenDemo
/// <summary> /// <summary>
/// 初始化並設置語音按鈕的相關資料,包括符號、座標與圖片等。 /// 初始化並設置語音按鈕的相關資料,包括符號、座標與圖片等。
/// </summary> /// </summary>
private void InitializeNumberWordCountButtons() private void InitializeNumberWordCountSongsButtons()
{ {
// 載入配置資料 // 載入配置資料
var data = LoadConfigDataforWordCountSongs(); var data = LoadConfigDataforWordCountSongs();
@ -268,7 +268,7 @@ namespace DualScreenDemo
var buttonImages = numberWordCountButtonImages[$"button{i}"]; var buttonImages = numberWordCountButtonImages[$"button{i}"];
// 創建並初始化語音按鈕,設定其背景圖片 // 創建並初始化語音按鈕,設定其背景圖片
CreateNumberWordCountButton(i, buttonImages.normal, buttonImages.mouseDown, buttonImages.mouseOver); CreateNumberWordCountSongsButton(i, buttonImages.normal, buttonImages.mouseDown, buttonImages.mouseOver);
} }
} }
@ -280,7 +280,7 @@ namespace DualScreenDemo
/// <param name="normalImagePath">正常狀態下的圖片路徑。</param> /// <param name="normalImagePath">正常狀態下的圖片路徑。</param>
/// <param name="mouseDownImagePath">點擊狀態下的圖片路徑。</param> /// <param name="mouseDownImagePath">點擊狀態下的圖片路徑。</param>
/// <param name="mouseOverImagePath">滑鼠移過狀態下的圖片路徑。</param> /// <param name="mouseOverImagePath">滑鼠移過狀態下的圖片路徑。</param>
private void CreateNumberWordCountButton(int index, string normalImagePath, string mouseDownImagePath, string mouseOverImagePath) private void CreateNumberWordCountSongsButton(int index, string normalImagePath, string mouseDownImagePath, string mouseOverImagePath)
{ {
try try
{ {
@ -310,7 +310,7 @@ namespace DualScreenDemo
numberWordCountButtonsForSongs[index].MouseLeave += (s, e) => numberWordCountButtonsForSongs[index].BackgroundImage = normalImage; numberWordCountButtonsForSongs[index].MouseLeave += (s, e) => numberWordCountButtonsForSongs[index].BackgroundImage = normalImage;
// 設置點擊事件處理方法 // 設置點擊事件處理方法
numberWordCountButtonsForSongs[index].Click += NumberWordCountButton_Click; numberWordCountButtonsForSongs[index].Click += NumberWordCountSongsButton_Click;
// 設置按鈕的 Tag 屬性為對應的語音符號 // 設置按鈕的 Tag 屬性為對應的語音符號
numberWordCountButtonsForSongs[index].Tag = numberWordCountSymbols[index]; numberWordCountButtonsForSongs[index].Tag = numberWordCountSymbols[index];
@ -335,7 +335,7 @@ namespace DualScreenDemo
LoadNumberWordCountSymbolsFromConfig(); LoadNumberWordCountSymbolsFromConfig();
// 初始化所有語音按鈕 // 初始化所有語音按鈕
InitializeNumberWordCountButtons(); InitializeNumberWordCountSongsButtons();
// 初始化注音歌手的特殊按鈕(例如音量、搜尋等) // 初始化注音歌手的特殊按鈕(例如音量、搜尋等)
InitializeSpecialButtonsForWordCountSongs(); InitializeSpecialButtonsForWordCountSongs();
@ -852,7 +852,7 @@ namespace DualScreenDemo
action(); // 否則直接執行 action(); // 否則直接執行
} }
} }
private void NumberWordCountButton_Click(object sender, EventArgs e) private void NumberWordCountSongsButton_Click(object sender, EventArgs e)
{ {
var button = sender as Button; var button = sender as Button;
if (button != null && button.Tag != null) if (button != null && button.Tag != null)
@ -864,6 +864,7 @@ namespace DualScreenDemo
} }
} }
} }
} }
} }

View File

@ -8,6 +8,7 @@ EnglishSongs = themes\superstar\歌名\英文\VOD_歌名查詢_英文查詢(按
PinYinSongs = themes\superstar\歌星\拼音\VOD_歌星查詢_拼音查詢(按鍵)_歌星查詢-注音查詢_未按.png PinYinSongs = themes\superstar\歌星\拼音\VOD_歌星查詢_拼音查詢(按鍵)_歌星查詢-注音查詢_未按.png
HandWritingSongs = themes\superstar\歌星\手寫\3.歌星查詢(手寫按鍵)_未按.png HandWritingSongs = themes\superstar\歌星\手寫\3.歌星查詢(手寫按鍵)_未按.png
WordCountSongs = themes\superstar\歌名\字數\VOD_歌名查詢_編號查詢(按鍵)_未按_沒有確認.png WordCountSongs = themes\superstar\歌名\字數\VOD_歌名查詢_編號查詢(按鍵)_未按_沒有確認.png
WordCountSingers = themes\superstar\歌星\字數\VOD_歌星查詢_編號查詢(按鍵)_未按_沒有確認.png
SongIDSearch = themes\superstar\歌名\編號\VOD_歌名查詢_編號查詢(按鍵)_未按_沒有確認.png SongIDSearch = themes\superstar\歌名\編號\VOD_歌名查詢_編號查詢(按鍵)_未按_沒有確認.png
[PictureBoxZhuYinSingers] [PictureBoxZhuYinSingers]
@ -114,6 +115,9 @@ closeButtonForSongs = 1074,372,70,65
modifyButtonWordCountSongs = 926,624,72,67 modifyButtonWordCountSongs = 926,624,72,67
clearButtonWordCountSongs = 845,624,72,67 clearButtonWordCountSongs = 845,624,72,67
closeButtonWordCountSongs = 1088,624,72,67 closeButtonWordCountSongs = 1088,624,72,67
modifyButtonWordCountSingers = 926,624,72,67
clearButtonWordCountSingers = 845,624,72,67
closeButtonWordCountSingers = 1088,624,72,67
modifyButtonSongIDSearch = 811,643,94,87 modifyButtonSongIDSearch = 811,643,94,87
clearButtonSongIDSearch = 692,643,93,87 clearButtonSongIDSearch = 692,643,93,87
closeButtonSongIDSearch = 1051,643,94,87 closeButtonSongIDSearch = 1051,643,94,87
@ -762,4 +766,21 @@ mouseDown = themes\superstar\歌名\編號\VOD_歌名查詢_編號查詢(按鍵)
[CloseButtonImagesSongID] [CloseButtonImagesSongID]
normal = themes\superstar\歌名\編號\VOD_歌名查詢_編號查詢(按鍵)-15.png normal = themes\superstar\歌名\編號\VOD_歌名查詢_編號查詢(按鍵)-15.png
mouseOver = themes\superstar\歌名\編號\VOD_歌名查詢_編號查詢(按鍵)-15.png mouseOver = themes\superstar\歌名\編號\VOD_歌名查詢_編號查詢(按鍵)-15.png
mouseDown = themes\superstar\歌名\編號\VOD_歌名查詢_編號查詢(按鍵)-30.png mouseDown = themes\superstar\歌名\編號\VOD_歌名查詢_編號查詢(按鍵)-30.png
[PictureBoxWordCountSingers]
X = 790
Y = 350
Width = 420
Height = 350
[InputBoxWordCountSingers]
X = 800
Y = 405
Width = 400
Height = 60
FontName = Times New Roman
FontSize = 26
FontStyle = Regular
ForeColor = Black

View File

@ -103,3 +103,11 @@
於 DualScreenDemo.PrimaryForm.InitializeFormAndControls() 於 DualScreenDemo.PrimaryForm.InitializeFormAndControls()
於 DualScreenDemo.PrimaryForm..ctor() 於 DualScreenDemo.PrimaryForm..ctor()
於 DualScreenDemo.Program.Main() 於 DualScreenDemo.Program.Main()
[2025/3/24 下午 04:28:36] System.NullReferenceException: 並未將物件參考設定為物件的執行個體。
於 DualScreenDemo.PrimaryForm.LoadSpecialButtonCoordinatesForWordCountSingers(IniData data, String section, String buttonKey)
於 DualScreenDemo.PrimaryForm.InitializeModifyButtonWordCountSingers()
於 DualScreenDemo.PrimaryForm.InitializeSpecialButtonsForWordCountSingers()
於 DualScreenDemo.PrimaryForm.InitializeButtonsForWordCountSingers()
於 DualScreenDemo.PrimaryForm.InitializeFormAndControls()
於 DualScreenDemo.PrimaryForm..ctor()
於 DualScreenDemo.Program.Main()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB